Compare commits

..

635 Commits

Author SHA1 Message Date
Meng
6226c8045e quickjs-ng 2025-07-22 18:26:08 +02:00
Amin Ben Romdhane
498a06916b netmode: Align with reference updates 2025-07-21 17:46:16 +05:30
Suvendhu Hansa
332057fdd4 wifidmd,map-agent: Fix WiFi lagecy nodes for extenders 2025-07-21 17:44:04 +05:30
Vivek Kumar Dutta
58aff3cb45 obuspa: Improve file handling 2025-07-21 17:40:53 +05:30
Vivek Kumar Dutta
5678b6dcaa bbfdm: Optimize datamodel references 2025-07-21 17:08:38 +05:30
Vivek Kumar Dutta
a597c514f7 bbfdm: 1.16.8 2025-07-18 17:10:20 +05:30
Mohd Husaam Mehdi
3c1dcf90eb usermngr: set compile time flag to use pam with shadow-utils 2025-07-18 16:27:42 +05:30
Mohd Husaam Mehdi
62dc6c28a3 firewallmngr: 1.0.10 2025-07-17 19:45:09 +05:30
Amin Ben Romdhane
2703ea0421 timemngr: 1.1.11 2025-07-17 15:35:25 +02:00
Amin Ben Romdhane
b4a0572b7c bridgemngr: 1.1.1 2025-07-17 15:34:09 +02:00
Husaam Mehdi
428055c911 sshmngr: use openssh-with-pam as the default backend 2025-07-17 16:16:18 +05:30
Mohd Husaam Mehdi
97723f9e7a usermngr: include passwdqc and linux-pam
* passwdqc helps us enforce strong passwords policy
* linux-pam helps in managing failed login attempts
2025-07-17 14:48:32 +05:30
Vivek Kumar Dutta
2dceb5b44b wifidmd: 1.1.38 2025-07-16 16:51:49 +05:30
Vivek Kumar Dutta
8c9689caf7 fluent-bit: build using git proto 2025-07-16 11:56:36 +05:30
Janusz Dziedzic
af5bb94c8c fluent-bit: fix package hash 2025-07-15 14:45:26 +02:00
Janusz Dziedzic
9db65fcfba libwifi: 7.13.7 2025-07-15 10:24:24 +00:00
Vivek Kumar Dutta
2b43c27e53 xmppc: Fix ConnReqXMPPConnection reference 2025-07-15 10:07:05 +05:30
Vivek Kumar Dutta
c16f4d3f82 wifidmd: 1.1.37 2025-07-14 19:09:46 +05:30
Janusz Dziedzic
99a4f3c036 map-controller: 6.4.0.12 2025-07-14 12:37:53 +02:00
Erik Karlsson
71217d4f68 ieee1905: avoid installing datamodel_description.json into root 2025-07-14 08:50:46 +02:00
Vivek Kumar Dutta
ad012d7549 wifidmd: fix log spamming when radio disabled 2025-07-14 10:01:09 +05:30
Vivek Kumar Dutta
6cca837500 sulu: support dynamic QR 2025-07-14 09:49:23 +05:30
Amin Ben Romdhane
6bec3c159c bbfdm: Ensure UCI savedir paths are created before initialization from C code 2025-07-14 00:37:43 +02:00
Mohd Husaam Mehdi
fd921bb196 fluent-bit: bump version and adjust patch accordingly 2025-07-10 14:53:55 +05:30
Janusz Dziedzic
60d2f92da3 wifimngr: 17.7.6 2025-07-10 08:51:47 +00:00
Janusz Dziedzic
8f83250890 libwifi: 7.13.6 2025-07-10 08:50:48 +00:00
Vivek Kumar Dutta
652ec8a4af wifidmd: Updated default log level 2025-07-09 16:58:15 +05:30
Vivek Kumar Dutta
937b824055 tr143: 1.1.4 2025-07-09 16:56:02 +05:30
Vivek Kumar Dutta
889723079b bridgemngr: Add support for Bridge Type 2025-07-09 16:52:06 +05:30
Janusz Dziedzic
7a457ae32a libwifi: 7.13.5 2025-07-09 12:39:38 +02:00
Vivek Kumar Dutta
7e5e38e657 wifidmd: Support for AgentOnboard event 2025-07-09 15:44:40 +05:30
Vivek Kumar Dutta
44edac6572 icwmp: return 9003 for duplicate param in spv 2025-07-09 15:42:10 +05:30
Amin Ben Romdhane
fea3e1e4ef timemngr: Added support for SupportedZones object 2025-07-09 14:54:54 +05:30
Vivek Kumar Dutta
eae31a6dd4 obuspa: Integrated v10.0.4 2025-07-09 14:29:55 +05:30
Husaam Mehdi
3a1a65d5df logmngr: Use kmsg module instead of klogd 2025-07-09 12:45:43 +05:30
Husaam Mehdi
70a22d0299 logmngr: Include kernel logs 2025-07-09 12:43:46 +05:30
Amin Ben Romdhane
2a19a1a92a ieeee1905: Add data model description 2025-07-09 11:28:59 +05:30
Mohd Husaam Mehdi
5b865c9dbc fluent-bit: fix kmsg plugin and add syslog timestamp to kmsg logs 2025-07-09 11:20:51 +05:30
Mohd Husaam Mehdi
bc041faf04 fluent-bit: enable kmsg plugin 2025-07-09 11:20:51 +05:30
Janusz Dziedzic
de08bc79a1 ieee1905: 8.7.33 2025-07-08 08:16:56 +00:00
Vivek Kumar Dutta
9ab8dbdb3b dslmngr: 1.2.10 2025-07-04 15:15:57 +05:30
Vivek Kumar Dutta
f3cb8ad566 sulu: 5.0.4 2025-07-04 14:43:12 +05:30
Vivek Kumar Dutta
95e9630c4b libdsl: 7.3.0 2025-07-04 12:20:08 +05:30
Vivek Kumar Dutta
2c6a9e76c8 wifidmd: 1.1.33 2025-07-04 12:09:39 +05:30
Suvendhu Hansa
653b74aacf icwmp: avoid unexpected DHCP release at runtime 2025-07-03 11:25:50 +05:30
Reidar Cederqvist
c6437fbf53 Update Sulu to version 5.0.3 2025-07-02 18:02:48 +00:00
Markus Gothe
3a4ad69af9 libdsl: initial Airoha integration. 2025-07-02 16:02:27 +02:00
Suvendhu Hansa
0379e816c5 tr143: init/clean modules from DownloadDiagnostics test 2025-07-02 14:43:40 +05:30
Amin Ben Romdhane
b8f99bbe64 ethmngr: 3.0.8 2025-07-01 17:50:59 +02:00
Jakob Olsson
42df10c708 map-agent: 6.3.6.7 2025-07-01 14:28:09 +02:00
Amin Ben Romdhane
7369ee4c20 wifidmd: 1.1.32 2025-07-01 12:48:47 +02:00
Amin Ben Romdhane
dc3aa2ec9d hostmngr: 1.3.1 2025-07-01 12:47:39 +02:00
Amin Ben Romdhane
312d28bec4 bbfdm: refresh DHCP entries when a new extender/repeater is connected 2025-07-01 12:33:12 +02:00
Anjan Chanda
45a754f567 ieee1905: 8.7.32 2025-07-01 09:44:59 +02:00
Amin Ben Romdhane
491f2ca07d netmngr: 1.1.8 2025-06-30 18:21:33 +02:00
Amin Ben Romdhane
2d5f9229f2 bbfdm: 1.16.6 2025-06-30 17:16:29 +02:00
Anjan Chanda
16536b9bc3 ieee1905: 8.7.31 2025-06-30 15:42:27 +02:00
Jakob Olsson
f552b68f10 map-agent: 6.3.6.6 2025-06-30 13:59:22 +02:00
Jakob Olsson
7c444911f7 map-agent: 6.3.6.5 2025-06-30 11:31:43 +02:00
Vivek Kumar Dutta
7a12fb28b1 wifidmd: reset WiFi with WiFi.Reset() cmd 2025-06-30 12:49:43 +05:30
Vivek Kumar Dutta
a430d76517 tr143: an7581 fastpath improvements 2025-06-29 10:46:16 +05:30
Janusz Dziedzic
b48c7e14dc map-agent: use correct networkid for dynamic backhaul 2025-06-27 14:27:36 +00:00
Gustaf Franzen
269d72c30a nng: 1.11
NNG - nanomsg-next-gen
2025-06-27 12:03:58 +00:00
Anjan Chanda
f19082aa1e ieee1905: 8.7.27 2025-06-27 13:45:19 +02:00
Janusz Dziedzic
43f0296ea2 libwifi: 7.13.4 2025-06-27 11:02:38 +00:00
Amin Ben Romdhane
6418f9fa8f bbfdm: 1.16.5 2025-06-26 17:01:41 +02:00
arbala
58ecaf9c15 map-agent: 6.3.6.4 2025-06-26 13:20:37 +02:00
Markus Gothe
0f8887f676 dslmngr: Add initial Airoha support. 2025-06-26 13:04:41 +02:00
Vivek Kumar Dutta
a1193cc6b8 wifidmd: 1.1.30 2025-06-26 14:44:02 +05:30
Vivek Kumar Dutta
392a41b38a ieee1905: tr181 vendor extn for localonly mode 2025-06-26 14:40:55 +05:30
Mohd Husaam Mehdi
c3128d3a14 self-diagnostics: collect contents of firewall log file 2025-06-26 13:25:22 +05:30
Anjan Chanda
4d88e123a9 ieee1905: 8.7.25 2025-06-26 09:27:43 +02:00
Vivek Kumar Dutta
fb050cae2e wifidmd: Set network_type with SetSSID 2025-06-25 18:03:30 +05:30
Jakob Olsson
90af4f350b map-agent: 6.3.6.3 2025-06-25 11:58:42 +02:00
Amin Ben Romdhane
605f0faacc parental-control: Use the correct instance name in reload service 2025-06-25 10:04:32 +02:00
arbala
065772401b ieee1905: 8.7.11 2025-06-25 09:47:06 +02:00
Vivek Kumar Dutta
886000a830 dnsmngr: Fix probable crash 2025-06-25 09:47:20 +05:30
Reidar Cederqvist
0b5a84e33a sulu: bump sulu-core to latest devel 2025-06-25 00:26:30 +02:00
Vivek Kumar Dutta
a2763cd075 bbfdm: Update reference db before set 2025-06-24 18:59:40 +05:30
Erik Karlsson
4a8b27ed95 map-agent: 6.3.6.2 2025-06-24 14:50:48 +02:00
Erik Karlsson
6eef7e4b21 ieee1905: do not use hw.board.basemac 2025-06-24 14:50:34 +02:00
Vivek Kumar Dutta
a0bde81de4 obuspa: Fix parameters in TransferCompelete event 2025-06-24 18:15:22 +05:30
Vivek Kumar Dutta
5e04f9312b sysmngr: Fix TransferComplete parameters 2025-06-24 18:13:42 +05:30
Vivek Kumar Dutta
a1e7f80ae0 logmngr: 1.0.17 2025-06-24 18:13:35 +05:30
Xiaofeng Meng
ed5169b94c sshmngr: Fix session detection for OpenSSH backend
The `sshmngr` service failed to list active sessions with the `sshd`
(OpenSSH) backend because the session detection logic could not handle
the process structure of modern OpenSSH, which uses an intermediate
process for new connections.

This commit resolves the issue by:
- Improving process lookup to check for grandparent PIDs, correctly
  identifying the session process.
- Querying the correct intermediate process for network connection details.
  parse netstat output.

The new logic is encapsulated in a `get_network_info` function within the
`openssh` backend script to maintain compatibility with the `dropbear`
backend, which uses a simpler implementation of the same function.
2025-06-24 18:04:44 +05:30
Jakob Olsson
c64701e6b2 map-agent: 6.3.6.1 2025-06-24 13:36:14 +02:00
Anjan Chanda
db6672c9ee wifimngr: 17.7.5 2025-06-24 10:28:45 +02:00
Vivek Kumar Dutta
05c4d0d3d1 obuspa: Fix log level for some recurring logs 2025-06-24 12:59:33 +05:30
Reidar Cederqvist
6535fe465c sulu: bump sulu-theme-genexis version to fix dark-mode logo 2025-06-23 10:52:55 +02:00
Markus Gothe
2703db3f2e mcastmngr: Add L2 snooping UCI generation.
If the WAN device is a bridge then generate
a default configuration using snooping instead
of proxying.
2025-06-23 09:29:47 +02:00
Suvendhu Hansa
bb603cb492 obuspa: mqtt fallback IP family in dual-stack mode 2025-06-21 19:17:25 +05:30
Reidar Cederqvist
f8d7788d6f sulu: update sulu to version 5.0 based on React 2025-06-20 20:53:42 +02:00
Vivek Kumar Dutta
97df4367eb bbfdm: 1.16.3 2025-06-20 18:44:02 +05:30
Vivek Kumar Dutta
21fbf0253c sysmngr: 1.0.27 2025-06-20 18:10:19 +05:30
Vivek Kumar Dutta
ced2b4187f netmode: 1.1.5 2025-06-20 12:43:21 +05:30
Suvendhu Hansa
bfdd27f72a obuspa: Option to configure DualStack preference 2025-06-20 09:08:20 +05:30
George Yang
6f1953e4a4 dectmngr-3.7.10 and libvoice-airoha-1.1.7
- Play dial tone for DECT handset
2025-06-19 15:00:38 +00:00
Roman Azarenko
fd816f8ee1 iopsys-analytics: read ubus event data from pipe 2025-06-19 16:51:27 +02:00
Jakob Olsson
cbdc083db5 ieee1905: 8.7.9 2025-06-19 15:20:38 +02:00
Jakob Olsson
eb1897a730 hostmngr: 1.3.0 2025-06-19 14:34:03 +02:00
Roman Azarenko
546450566e iopsys-analytics: get hostname from UCI, whitespace/typo cleanup 2025-06-18 22:16:31 +02:00
Vivek Kumar Dutta
5fb51c6fd9 wifidmd: Added EncryptionMode parameter 2025-06-18 20:52:26 +05:30
Sukru Senli
5d84d0ae29 wifi-services, map-plugins: add PKG_LICENSE_FILES 2025-06-18 17:07:33 +02:00
Anjan Chanda
340709b527 map-plugins: 0.0.4 2025-06-18 16:38:07 +02:00
George Yang
38bef28d00 dectmngr-3.7.9 and libvoice-airoha-1.1.6
- dectmngr: DTMF tone always be played in any DTMF mode
  whenever key is pressed.

- libvoice-airoha: Removed adamStrmSendDtmfr() calls.
  It is not actually needed for rfc4733 mode to generate
  RTP event for received DTMF tones.
2025-06-18 15:55:41 +02:00
Janusz Dziedzic
ba53aeda7d libwifi: 7.13.3 2025-06-18 13:48:13 +00:00
Mohd Husaam Mehdi
bd63c5a090 parental-control: fix path used to check if urlfiltering is enabled 2025-06-18 18:19:27 +05:30
George Yang
89c1fbb38a libvoice-airoha-1.1.5 2025-06-18 10:31:08 +02:00
Vivek Kumar Dutta
d6ff1d851b parental-control: 1.2.1 2025-06-18 11:02:16 +05:30
Vivek Kumar Dutta
107b1576e8 ipt-trigger: 1.0.3 2025-06-18 11:00:27 +05:30
Vivek Kumar Dutta
47694dc23e hostmngr: 1.2.21 2025-06-18 11:00:27 +05:30
Vivek Kumar Dutta
002836769c bridgemngr: 1.0.17 2025-06-18 11:00:23 +05:30
Amin Ben Romdhane
cafb9f09ba wifidmd: 1.1.27 2025-06-17 16:26:14 +02:00
Sukru Senli
a440adbef9 jsonval: 1.0.0
A small CLI tool to validate JSON files against a schema using json-schema-validator and nlohmann/json
2025-06-17 15:38:32 +02:00
Sukru Senli
2ba04321b3 json-schema-validator: 2.3.0 2025-06-17 17:13:00 +05:30
Sukru Senli
9126f2ef7d nlohmann-json: 3.11.2 2025-06-17 17:13:00 +05:30
Amin Ben Romdhane
ed01ddf670 bbfdm: 1.16.2 2025-06-16 16:05:39 +02:00
Janusz Dziedzic
7e360f7b30 map-agent: 6.3.6.0 2025-06-16 13:54:31 +00:00
Vivek Kumar Dutta
e15dcd3b25 wifidmd: Fetch radio status from wifi.radio ubus object 2025-06-16 09:55:27 +05:30
Suvendhu Hansa
9ee00a3c82 map-controller: added wpa,wpa2,wpa-mixed in uci validation 2025-06-13 20:26:17 +05:30
Janusz Dziedzic
ba94d88f0d libwifi: 7.13.2 2025-06-13 14:32:36 +00:00
George Yang
041e51edf3 libvoice-airoha: 1.1.4 and dectmngr: 3.7.8 2025-06-13 12:15:53 +02:00
Amin Ben Romdhane
6ca5af0790 bbfdm: 1.16.1 2025-06-13 11:11:55 +02:00
Anjan Chanda
6d32d6e8b3 map-plugins: 0.0.3 2025-06-13 11:05:32 +02:00
Anjan Chanda
2b4f9029f8 map-controller: 6.4.0.11 2025-06-13 11:04:27 +02:00
Vivek Kumar Dutta
8c3bf8763e obuspa: option to configure poll period 2025-06-13 10:40:40 +05:30
Mohd Husaam Mehdi
1c6243113c mcastmngr: update firewall script to get zone name dynamically 2025-06-12 19:50:36 +05:30
Mohd Husaam Mehdi
eedf8d2761 firewallmngr: update firewall script to get zone name dynamically 2025-06-12 19:43:14 +05:30
Amin Ben Romdhane
bf8b4de5da wifidmd: add a script to handle wifi configs relaod 2025-06-12 15:14:07 +05:30
Vivek Kumar Dutta
fd208e0e5f bbfdm: external reload handlers for wifi 2025-06-12 15:14:07 +05:30
Husaam Mehdi
5b090176a1 logmngr: Fix shadow variable names in lib 2025-06-12 14:34:46 +05:30
Jakob Olsson
93b1952f50 decollector: 6.2.1.7 2025-06-12 09:26:36 +02:00
Jakob Olsson
ddcfeeb339 map-controller: 6.4.0.6 2025-06-11 16:26:13 +02:00
Anjan Chanda
8cea3573f7 map-plugins: 0.0.2 2025-06-11 15:39:15 +02:00
Anjan Chanda
8ac0f69992 map-controller: 6.4.0.5 2025-06-11 15:38:10 +02:00
Janusz Dziedzic
65dea29e5f mapcontroller: 6.4.0.3 2025-06-11 12:28:27 +00:00
Janusz Dziedzic
2cecb4f75a libwifi: 7.13.1 2025-06-11 10:11:16 +00:00
Suvendhu Hansa
a47d302ec7 icwmp,twamp,userinterface: Fix duplicate zone names 2025-06-11 14:34:41 +05:30
Roman Azarenko
a9b3a392dd iopsys-analytics: fix typo in Makefile conditional
syslong-ng -> syslog-ng
2025-06-11 10:04:05 +02:00
Amin Ben Romdhane
397611aff5 wifidmd: 1.1.24 2025-06-10 17:39:43 +02:00
arbala
21c9fafc4d map-agent: 6.3.5.9 2025-06-10 17:21:49 +02:00
Anjan Chanda
41efd7d712 map-plugins: 0.0.1 2025-06-10 17:05:46 +02:00
Anjan Chanda
f1e37ac0d8 map-controller: 6.4.0.2 2025-06-10 17:04:22 +02:00
Vivek Kumar Dutta
ab6d3935d1 swmodd: 2.5.27 2025-06-10 11:02:12 +05:30
Roman Azarenko
db529f651e iopsys-analytics: add support for fluentbit 2025-06-09 16:47:18 +02:00
Mohd Husaam Mehdi
975bf57de0 analytics: add support for fluent-bit backend 2025-06-09 13:21:21 +00:00
Vivek Kumar Dutta
6fb3a1b91d wifidmd: Vendor extn to modify ssid in SetSSID 2025-06-09 17:02:59 +05:30
Suvendhu Hansa
57ae4eb344 icwmp,twamp: Fix zone name in firewall rules 2025-06-09 16:53:48 +05:30
Anjan Chanda
dc79aa56f9 map-controller: 6.4.0.1 2025-06-09 10:24:31 +02:00
Vivek Kumar Dutta
8334b65ad4 icwmp: Fix fault string initialization 2025-06-06 17:18:53 +05:30
Strhuan Blomquist
e9caa2e7cd cleanup of colleccd 2025-06-05 13:58:47 +00:00
Janusz Dziedzic
49a31dbd49 libwifi: 7.13.0 2025-06-05 08:10:38 +00:00
Vivek Kumar Dutta
31f223f7a0 icwmp: 9.9.8 2025-06-04 18:03:28 +05:30
Vivek Kumar Dutta
8e33d24256 sysmngr: 1.0.26 2025-06-04 17:59:04 +05:30
Mohd Husaam Mehdi
e6df8f9ad0 logmngr: add support for conf_dir in generated logrotate config 2025-06-04 15:02:45 +05:30
Reidar Cederqvist
2c3e9ce606 sulu: fix led brightness access 2025-06-04 10:58:45 +02:00
arbala
616e15b9c4 decollector: 6.2.1.6 2025-06-03 15:37:23 +02:00
Husaam Mehdi
93d2d09dcc parental-control: Option to enable/disable urlfilter 2025-06-03 15:56:45 +05:30
Janusz Dziedzic
ece7e8f22c wifimngr: 17.7.4 2025-06-03 08:17:45 +02:00
Vivek Kumar Dutta
879b473d20 bbfdm: Added netmode in critical service list 2025-06-02 19:07:40 +05:30
Vivek Kumar Dutta
ac9da0ec6f wifidmd: Cleanup updated for Radius parameters 2025-06-02 19:05:56 +05:30
Suvendhu Hansa
7c5046d9d8 bbfdm: added mapcontroller in critical service 2025-05-30 20:37:11 +05:30
Vivek Kumar Dutta
69ccc34b2c sysmngr: align with fwbank 2025-05-30 19:35:24 +05:30
Vivek Kumar Dutta
87a6852c1a sysmngr: fwbank: return failure result if input validation fails 2025-05-30 13:26:17 +05:30
Vivek Kumar Dutta
b0d1ada967 ddnsmngr: 1.0.12 2025-05-30 09:30:05 +05:30
Husaam Mehdi
09cccc39cc fluent-bit: Align syslog output with syslog-ng
- added support to prepend message length in syslog output
2025-05-30 09:27:19 +05:30
Jakob Olsson
7227cbd8da map-agent: 6.3.5.8 2025-05-28 13:00:50 +02:00
Vivek Kumar Dutta
c57b0322b0 netmode: 1.1.4 2025-05-28 12:36:43 +05:30
Sukru Senli
db626422dc netmode: Added mode specific scripts 2025-05-28 12:17:31 +05:30
Anjan Chanda
26ffa55453 wifimngr: 17.7.3 2025-05-27 20:23:43 +02:00
arbala
adc2b26a78 map-controller: 6.3.0.19 2025-05-27 17:34:01 +02:00
Amin Ben Romdhane
51e3ad0404 bbfdm: 1.15.30 2025-05-27 16:41:19 +02:00
Amin Ben Romdhane
d9448a0de4 icwmp: 9.9.7 2025-05-27 16:40:27 +02:00
Amin Ben Romdhane
84eff7c8e0 wifidmd: 1.1.21 2025-05-27 16:37:16 +02:00
Amin Ben Romdhane
53d940586e bridgemngr: 1.0.16 2025-05-27 16:33:00 +02:00
Amin Ben Romdhane
712435786a netmngr: 1.1.7 2025-05-27 16:31:58 +02:00
Jakob Olsson
e57bbc0306 map-agent: 6.3.5.7 2025-05-27 13:04:38 +02:00
Vivek Kumar Dutta
cc4aa5a415 wifidmd: Added InitiateWPSPBC() in DataElements 2025-05-27 09:12:37 +05:30
Amin Ben Romdhane
7e502d79c8 bridgemngr: 1.0.15 2025-05-26 17:18:03 +02:00
Amin Ben Romdhane
cbbc3b3725 wifi-services: Add Rating Data Model Extension 2025-05-26 13:13:15 +00:00
Mohd Husaam Mehdi
dcfe80ad8e fluent-bit: enable tail plugin to help read files 2025-05-26 18:42:27 +05:30
Mohd Husaam Mehdi
c8bbe8725a logmngr: enable hot reload for fluent-bit 2025-05-26 17:47:18 +05:30
Anjan Chanda
71828eb20b decollector: 6.2.1.5 2025-05-26 14:14:55 +02:00
Anjan Chanda
90fd7f326d decollector: 6.2.1.4 2025-05-26 12:01:47 +02:00
Anjan Chanda
1263451924 wifimngr: 17.7.2 2025-05-26 11:48:18 +02:00
Anjan Chanda
c74662e1dd wifi-services: 0.0.5 2025-05-26 11:47:09 +02:00
Janusz Dziedzic
34482e3c86 map-agent: 6.3.5.6 2025-05-26 07:45:43 +00:00
Filip Matusiak
96be0f9fab map-agent: 6.3.5.5
log: introduce feature level logging
2025-05-26 08:54:23 +02:00
Mohd Husaam Mehdi
971d1ca37e logmngr: add support for including config files in fluent-bit
* config files can be placed at /etc/fluent-bit/conf.d/ and
  they will be included
2025-05-26 11:46:38 +05:30
Vivek Kumar Dutta
99821b5010 obuspa: uci option to configure mqtt RequestResponseInfo 2025-05-25 21:45:02 +05:30
Erik Karlsson
c68b1c01eb libwifi: 7.12.10 2025-05-23 15:45:55 +02:00
George Yang
a053e7752f dectmngr: Support DCX81 firmware upgrade via init script 2025-05-23 14:58:44 +02:00
Amin Ben Romdhane
558bd40b9f wifidmd: Fix compilation error when WIFIDMD_DISABLE_LEGACY_WIFI is selected 2025-05-23 09:21:47 +02:00
Amin Ben Romdhane
432969f0bf wifidmd: 1.1.18 2025-05-22 18:02:19 +02:00
Sukru Senli
a7dfecba54 wifi-services: add LICENSE file 2025-05-22 16:41:57 +02:00
Jakob Olsson
0ba1417643 decollector: 6.2.1.3 2025-05-22 14:05:10 +02:00
Jakob Olsson
29d6ad2fbd map-controller: 6.3.0.18 2025-05-22 14:04:37 +02:00
Jakob Olsson
f7ef772ebf map-agent: 6.3.5.4 2025-05-22 14:04:02 +02:00
Amin Ben Romdhane
d0c9d595c8 wifidmd: 1.1.17 2025-05-22 11:14:15 +02:00
Amin Ben Romdhane
912d98f496 bbfdm: 1.15.29 2025-05-22 11:12:41 +02:00
George Yang
8fb1b55e57 libvoice-airoha: update uci-defaults to apply DECT RFPI from prodution data
Set the hw.board.dect_rfpi with value of USP 'DectRfpi'.
2025-05-22 10:37:45 +02:00
Vivek Kumar Dutta
c5e79244c7 wifidmd: 1.1.16 2025-05-22 14:04:21 +05:30
Amin Ben Romdhane
499f77d498 bbfdm: 1.15.28 2025-05-21 17:51:12 +02:00
Amin Ben Romdhane
480c954677 wifidmd: 1.1.15 2025-05-21 17:32:34 +02:00
Jakob Olsson
9a5564bca4 map-agent: hotplug: map-dynamic-backhaul: remove tracking of port connections prior to dynbh start 2025-05-21 15:50:17 +02:00
Jakob Olsson
67ee062946 map-agent: 6.3.5.3 2025-05-21 15:49:05 +02:00
Vivek Kumar Dutta
7ecdc3ccb4 timemngr: 1.1.9 2025-05-21 17:50:43 +05:30
Vivek Kumar Dutta
36490a7cda netmode: Add support for SupportedArguments 2025-05-21 16:22:27 +05:30
Anjan Chanda
1d31c5f795 wifimngr: 17.7.1 - update init.d script 2025-05-21 10:25:03 +02:00
Anjan Chanda
9a934269ae wifi-services: add libwifi dependency 2025-05-21 10:25:03 +02:00
Janusz Dziedzic
82e8c63c88 libwifi: 7.12.9 2025-05-20 16:15:23 +00:00
Erik Karlsson
4fe71d66d3 fluent-bit: use PKG_SOURCE_URL_FILE
This avoids having a very generic file name in the dl directory.
2025-05-20 15:21:00 +02:00
Jakob Olsson
74eac091ff decollector: 6.2.1.2 2025-05-20 15:15:37 +02:00
Janusz Dziedzic
94cf651a6c map-agent: 6.3.5.2 2025-05-20 12:56:20 +00:00
Janusz Dziedzic
08f909388c libwifi: 7.12.8 2025-05-20 12:51:47 +00:00
Amin Ben Romdhane
148d25caf0 bbfdm: 1.15.27 2025-05-20 14:45:36 +02:00
Amin Ben Romdhane
8d8cc94cdf wifidmd: 1.1.14 2025-05-20 14:41:39 +02:00
Anjan Chanda
0d6c7b2f70 wifimngr: 17.7.1 2025-05-20 14:24:52 +02:00
Anjan Chanda
0623e7017f libeasy: 7.4.6 2025-05-20 11:51:43 +02:00
Vivek Kumar Dutta
013f820b12 periodicstats: align with bbfdm 2025-05-20 15:18:17 +05:30
Vivek Kumar Dutta
9fd4584cdb bbfdm: Prevent repeated async calls to unstable micro-services 2025-05-20 15:18:17 +05:30
Anjan Chanda
3b3035441e wifimngr: 17.7.0 2025-05-20 11:45:46 +02:00
Anjan Chanda
38f36f3bdf libwifi: 7.12.7 2025-05-20 11:40:21 +02:00
Anjan Chanda
b27646211b wifi-services: 0.0.2 2025-05-20 11:36:17 +02:00
Vivek Kumar Dutta
70b5c78d22 icwmp: 9.9.6 2025-05-20 13:41:27 +05:30
Husaam Mehdi
2356ed6075 fluent-bit: bump version to 4.0.2 2025-05-20 13:34:35 +05:30
Suvendhu Hansa
39d484817e icwmp: Option to select SMM feature 2025-05-20 10:09:05 +05:30
Janusz Dziedzic
a73c089c2a libwifi: 7.12.6 2025-05-19 13:50:00 +00:00
Vivek Kumar Dutta
22d9f90528 netmode: fix extender configuration 2025-05-19 17:43:17 +05:30
Janusz Dziedzic
ac93499202 wifimngr: 17.6.6 2025-05-19 08:18:04 +00:00
Janusz Dziedzic
4dfc3455fb libwifi: 7.12.5 2025-05-19 08:18:04 +00:00
Anjan Chanda
5bc00d53fd decollector: 6.2.1.1 2025-05-19 09:22:49 +02:00
Suvendhu Hansa
6ec25f158c wifidmd: added vendor extension 2025-05-17 19:27:38 +00:00
Amin Ben Romdhane
9817ca11b5 wifidmd: 1.1.13 2025-05-16 15:38:11 +02:00
Vivek Kumar Dutta
ca49dfac97 netmode: support to define supported modes 2025-05-16 18:23:43 +05:30
Jakob Olsson
44238e2033 map-agent: 6.3.5.1 2025-05-16 09:04:55 +02:00
Jakob Olsson
e1d4bddbcf map-controller: 6.3.0.17 2025-05-16 09:03:18 +02:00
Anjan Chanda
c6a739ddc0 decollector: 6.2.1.0 2025-05-15 16:06:03 +02:00
Jakob Olsson
38f657fa84 map-controller: 6.3.0.16 2025-05-15 14:45:41 +02:00
Reidar Cederqvist
f5488143cd Sulu: improve mapping for device picture 2025-05-15 09:51:43 +02:00
Amin Ben Romdhane
cebbf0f860 wifidmd: 1.1.12 2025-05-14 22:47:25 +02:00
Amin Ben Romdhane
dcac2bd261 bbfdm: 1.15.25 2025-05-14 21:49:06 +02:00
Janusz Dziedzic
82c6cca440 libwifi: 7.12.4 2025-05-14 18:02:37 +00:00
Vivek Kumar Dutta
2a952644c5 parental-control: 1.1.6 2025-05-14 22:12:30 +05:30
Janusz Dziedzic
fac25dc016 libwifi: 7.12.3 2025-05-14 16:29:09 +00:00
arbala
623e1dc34e map-controller: 6.3.0.15 2025-05-14 15:59:39 +02:00
Erik Karlsson
ed30787ca4 map-controller: fix potential shell injection in 99-mapcntlr
Expand variables which may contain "user input" in the second pass
(production data is not likely to contain anything unsafe but it is
better to be on the safe side). In addition use "$@" instead of
hardcoded parameters and handle json_select failure. Use OpenWrt
get_mac_label instead of legacy methods to obtain MAC address.
2025-05-14 14:07:31 +02:00
Amin Ben Romdhane
d68e0847c4 dnsmngr: 1.0.17 2025-05-14 12:05:14 +02:00
Amin Ben Romdhane
08cb598de4 parental-control: 1.1.5 2025-05-14 12:03:53 +02:00
Amin Ben Romdhane
2763ba7656 periodicstats: 1.5.17 2025-05-14 11:57:51 +02:00
Amin Ben Romdhane
2591116be3 usermngr: 1.3.10 2025-05-14 11:56:23 +02:00
Amin Ben Romdhane
06876807c1 timemngr: 1.1.8 2025-05-14 11:55:20 +02:00
Amin Ben Romdhane
65344ebdc5 bulkdata: 2.1.20 2025-05-14 11:54:22 +02:00
Amin Ben Romdhane
7dc743630c tr143: 1.1.1 2025-05-14 11:53:09 +02:00
Amin Ben Romdhane
a8d7adbd1f wifidmd: 1.1.11 2025-05-14 11:52:19 +02:00
Amin Ben Romdhane
ba215d1d6f bbfdm: 1.15.24 2025-05-14 11:51:18 +02:00
Jakob Olsson
fdfa1526b8 map-controller: 6.3.0.14 2025-05-13 17:33:03 +02:00
Jakob Olsson
a93bde6fb5 map-agent: 6.3.5.0 2025-05-13 17:31:54 +02:00
Janusz Dziedzic
4135fbe369 wifimngr: 17.6.5 2025-05-12 09:36:56 +00:00
Erik Karlsson
e4e63ba991 wifimngr: remove LED handling 2025-05-09 11:48:40 +02:00
Janusz Dziedzic
832947703c wifimngr: 17.6.4 2025-05-09 07:59:21 +00:00
George Yang
14e5601aed dectmngr: remove the default PIN from dect config 2025-05-08 16:37:33 +02:00
George Yang
d3b2d4d9bf Revert "dectmngr: add rules in ruleng to handle DECT LED"
This reverts commit 5f36441b11.

As the solution caused conflict to WPS led.
2025-05-08 16:35:14 +02:00
George Yang
8741d7d82e dectmngr-3.7.7 2025-05-08 14:42:43 +02:00
Jakob Olsson
910538aad7 map-agent: 6.3.4.14 2025-05-08 14:24:51 +02:00
George Yang
5f36441b11 dectmngr: add rules in ruleng to handle DECT LED
Also remove the default DECT PIN '1234'.
2025-05-08 11:59:08 +00:00
Anjan Chanda
075728ce3e wifimngr: 17.6.3 2025-05-08 11:31:58 +02:00
Anjan Chanda
21687b6dc9 wifi-services: 0.0.1 2025-05-08 11:08:11 +02:00
Vivek Kumar Dutta
b5c2667d68 obuspa: Fix faults for operate commands 2025-05-07 21:47:51 +05:30
Amin Ben Romdhane
589c856cb7 ieee1905: 8.7.8 2025-05-07 15:04:12 +02:00
Amin Ben Romdhane
e819a32cd7 wifidmd: 1.1.10 2025-05-07 14:08:32 +02:00
George Yang
bc8c70f7d0 dectmngr-3.7.6 2025-05-06 18:04:22 +02:00
Elena Vengerova
fb17c3f51b libwifi, wifimngr: add eml_mode 2025-05-06 16:23:51 +04:00
Reidar Cederqvist
0dfd361033 sulu: fix WAN linktype 2025-05-06 13:09:42 +02:00
George Yang
6d31feaa00 dectmngr-3.7.5: DECT support for E755 2025-05-06 10:48:30 +02:00
Vivek Kumar Dutta
9df2d4b15e obuspa: Use legecy expanded paths for subscriptions 2025-05-05 18:51:47 +05:30
Suvendhu Hansa
b91ae7f7f0 tr143: use fastpath for download diagnostics in an7581 2025-05-02 19:03:01 +05:30
Vivek Kumar Dutta
6df1768244 netmode: datamodel vendor extension 2025-05-02 18:00:07 +05:30
Vivek Kumar Dutta
0a7245d2f9 obuspa: Optimize set requests to reduce reloads 2025-05-02 15:29:38 +05:30
Vivek Kumar Dutta
6166ba0041 obuspa: 10.0.0.5 2025-05-02 13:48:40 +05:30
George Yang
02577401c7 Config dect: Fix a typo 2025-05-02 10:14:58 +02:00
Vivek Kumar Dutta
eccfd8970a wifidmd: In SetSSID wait for changes to apply 2025-05-01 19:42:17 +05:30
Vivek Kumar Dutta
7097827eb8 obuspa: 10.0.0.4 2025-05-01 19:36:50 +05:30
Vivek Kumar Dutta
29e9ba389a obuspa: Updated SecuredRole only for bbfdm 2025-05-01 19:18:43 +05:30
George Yang
4c6f70342a dectmngr: Enable DECT base in default config
And also set the default PIN to '1234'.
2025-05-01 12:12:32 +02:00
Vivek Kumar Dutta
4708da4734 icwmp: 9.9.4 2025-05-01 10:21:15 +05:30
George Yang
55aba515ff libvoice-airoha: 1.1.3
DECT support on E755
2025-04-30 17:42:57 +02:00
George Yang
b1c9ce0d25 dectmngr-init: add few arguments for dectmngr
Add few arguments for dectmngr, which is based on the UCI config for
asterisk and dect:

    -sync $pcm_fsync (UCI dect.global.pcm_fsync)

    -slotsShift $pcm_slot_start (UCI dect.global.pcm_slot_star)

    -extensionShift N (starting index of UCI asterisk.extensionN for DECT)
2025-04-30 16:52:10 +02:00
Vivek Kumar Dutta
d3ae8b5020 obuspa: fix syslog format 2025-04-30 19:52:40 +05:30
Vivek Kumar Dutta
ca962744b8 obuspa: Integrated v10.0.0 2025-04-30 19:52:40 +05:30
George Yang
31c7500042 libvoice-airoha/uci-defaults: add DECT default settings for E755
Following default settings added to dect config:
  - dect.global.pcm_fsync='SHORT_LF'
  - dect.global.pcm_slot_start='8'
  - dect.global.dect_channel_start='3'
2025-04-30 16:16:16 +02:00
Jakob Olsson
e71ee20840 map-agent: 6.3.4.13 2025-04-30 12:27:20 +02:00
Mohd Mehdi
38763bfc0d logmngr: set fluent-bit coro_stack_size option to prevent segfault 2025-04-29 21:37:47 +05:30
Vivek Kumar Dutta
a43e3530c9 obuspa: align role definitions 2025-04-29 21:12:38 +05:30
Vivek Kumar Dutta
86ede4ab6b usermngr: Added admin,user users in default config 2025-04-29 20:09:52 +05:30
Jakob Olsson
d234e7adcc map-agent: 6.3.4.12 2025-04-29 15:34:41 +02:00
Erik Karlsson
e7e5ede6b9 ieee1905: populate device information based on OpenWrt properties
This follows how Device.DeviceInfo. is populated.
2025-04-29 15:15:33 +02:00
Janusz Dziedzic
476aee97a6 wifimngr: 17.6.1 2025-04-29 13:02:49 +00:00
Janusz Dziedzic
784c6553d8 libwifi: 7.12.1 2025-04-29 13:02:49 +00:00
Vivek Kumar Dutta
e2883f0f45 obuspa: use syslog for logging 2025-04-29 14:41:43 +05:30
Janusz Dziedzic
30d01926a8 map-agent: 6.3.4.11 2025-04-28 14:21:26 +00:00
Vivek Kumar Dutta
f6510849d6 usermngr: Remove deprecated RemoteAccessCapable 2025-04-28 19:22:33 +05:30
Vivek Kumar Dutta
d49e72be07 obuspa: mark roles as static 2025-04-28 19:08:13 +05:30
Janusz Dziedzic
35e9ed9b1b libwifi: 7.12.0 2025-04-28 13:00:03 +00:00
Sukru Senli
e66516242a lt-nand: remove unused package 2025-04-28 13:15:24 +02:00
Jakob Olsson
4affd50d2c map-agent: 6.3.4.10 2025-04-28 11:13:36 +02:00
Vivek Kumar Dutta
06dec89452 wifidmd: Fix mapping for Associated and Disassociated events 2025-04-28 13:42:12 +05:30
Vivek Kumar Dutta
130dbeacd5 bbfdm: Fix datamodel references generation 2025-04-25 19:54:19 +05:30
Vivek Kumar Dutta
d576d81b1f usermngr: Fix static user implementation 2025-04-25 19:52:28 +05:30
Reidar Cederqvist
ee6edfa5a9 sulu: remove SoftwareModules and topology widgets 2025-04-25 15:39:37 +02:00
Janusz Dziedzic
2f8c5e3f53 libwifi: 7.11.9 2025-04-25 08:10:37 +00:00
Erik Karlsson
5c0010edf8 ieee1905: 8.7.6 2025-04-24 13:17:37 +02:00
Jakob Olsson
001eb7e0a3 map-agent: 6.3.4.9 2025-04-24 11:53:59 +02:00
Janusz Dziedzic
a2209f555b map-agent: 6.3.4.8 2025-04-24 07:35:34 +00:00
Janusz Dziedzic
8c09e8658e wifimngr: 17.6.0 2025-04-24 06:50:21 +00:00
Reidar Cederqvist
1d85f324a4 sulu: update to latest sulu-core 2025-04-23 21:25:59 +02:00
Jakob Olsson
65926415ad map-agent: 6.3.4.7 2025-04-23 15:44:50 +02:00
Amin Ben Romdhane
50e865df53 wifidmd: 1.1.7 2025-04-23 15:00:52 +02:00
Amin Ben Romdhane
cf352e9990 bbfdm: 1.15.22 2025-04-23 14:59:09 +02:00
Jakob Olsson
ecec95ca57 map-agent: 6.3.4.6 2025-04-23 13:24:00 +02:00
Vivek Kumar Dutta
9a051abbf1 bbfdm: 1.15.21 2025-04-23 09:44:59 +05:30
Vivek Kumar Dutta
d3b5d8d598 bbfdm: bump RootDataModelVersion to 2.19 2025-04-22 19:10:14 +05:30
Vivek Kumar Dutta
3c4bbfb6d6 port-trigger: functionality merged in firewallmngr 2025-04-22 16:45:07 +05:30
Vivek Kumar Dutta
0122493c01 sysmngr: add support for KeepConfig in Activate 2025-04-22 16:36:29 +05:30
Anjan Chanda
6098c3ab56 decollector: 6.2.0.4 2025-04-22 09:53:12 +02:00
Anjan Chanda
252c98c4ef map-controller: 6.3.0.13 2025-04-22 09:25:38 +02:00
Vivek Kumar Dutta
5ea17980c8 wifidmd: Added BTMAbridged in ClientSteer command 2025-04-21 15:06:23 +05:30
Vivek Kumar Dutta
3ba06fa10f wifidmd: 1.1.5 2025-04-17 17:27:51 +05:30
Jakob Olsson
013086f558 decollector: 6.2.0.3 2025-04-17 13:00:26 +02:00
Jakob Olsson
3a8f8d604f map-agent: 6.3.4.5 2025-04-17 12:26:18 +02:00
Janusz Dziedzic
8612f5d4f6 map-agent: 6.3.4.4 2025-04-16 19:08:34 +00:00
Janusz Dziedzic
6aef37d406 libwifi: 7.11.8 2025-04-16 16:39:55 +00:00
Amin Ben Romdhane
753dc05320 wifidmd: 1.1.4 2025-04-16 15:27:17 +02:00
Amin Ben Romdhane
74878254b7 hostmngr: 1.2.20 2025-04-16 15:26:08 +02:00
Janusz Dziedzic
4f2697217a libwifi: 7.11.7 2025-04-16 10:28:11 +00:00
Amin Ben Romdhane
e36a9bc381 wifidmd: 1.1.3 2025-04-15 17:23:23 +02:00
Amin Ben Romdhane
a52d654c4f bbfdm: 1.15.19 2025-04-15 17:22:28 +02:00
Vivek Kumar Dutta
6cf5641ea7 cwmp: Use cpe specific acs password 2025-04-15 18:10:35 +05:30
Janusz Dziedzic
bce378a665 libwifi: 7.11.6 2025-04-15 12:32:27 +00:00
Jakob Olsson
9952f6e580 map-controller: 6.3.0.12 2025-04-15 14:06:28 +02:00
Vivek Kumar Dutta
7d0b38b9a7 wifidmd: replace BTMRequest() with ClientSteer() 2025-04-15 17:33:38 +05:30
Janusz Dziedzic
3a503ea955 libwifi: 7.11.5 2025-04-15 11:28:14 +00:00
Vivek Kumar Dutta
13cac21c60 bbfdm: removed stunc and xmpp from cwmp critical services list 2025-04-15 16:47:02 +05:30
Amin Ben Romdhane
f251701534 qosmngr: Updated log level 2025-04-15 11:16:46 +00:00
Vivek Kumar Dutta
5b882870c9 icwmp: register xmpp as cwmp only 2025-04-15 11:09:53 +00:00
Vivek Kumar Dutta
25f3acf2fd wifidmd: Fix AssociatedDevice for MLD supported DUTs 2025-04-15 11:09:53 +00:00
Suvendhu Hansa
c1fe6b05a6 xmpp: optimize xmpp uci map 2025-04-15 11:09:53 +00:00
Jakob Olsson
4ee9169771 hostmngr: 1.2.19 2025-04-15 13:03:11 +02:00
Amin Ben Romdhane
7172201515 bbfdm: install ruleng scripts 2025-04-15 11:32:55 +02:00
Erik Karlsson
c366451def logmngr: fix creation of logrotate configuration 2025-04-15 09:28:39 +02:00
Erik Karlsson
5874a005c6 logmngr: install logread to /sbin
It was being installed to /usr/sbin as workaround for conflict with
logd package. The correct solution is to not select logd package.
2025-04-15 09:22:16 +02:00
Vivek Dutta
ffab63b86f bbfdm: ruleng script to refresh reference_db 2025-04-15 06:41:24 +00:00
Janusz Dziedzic
929dd55d21 libwifi: 7.11.4 2025-04-14 17:23:56 +00:00
Reidar Cederqvist
3636e217a6 sulu-builder: add qrencode dependency for generating wifi qr code 2025-04-14 15:39:50 +02:00
Vivek Kumar Dutta
b99d4413dc obuspa: remove usages of stdout/stderr from init 2025-04-14 14:21:42 +05:30
Andreas Gnau
f2f6f6b787 map-controller: Allow setting Wi-Fi SSID from board.json
OpenWrt enables setting default Wi-Fi settings in board.json using
board.d scripts. Read from board.json for each band or all bands,
otherwise fall back to the old method of generating the SSID and key.

The following can be specified:

* WiFI SSID
* encryption mode
* key
* number of MAC addresses (not implemented in this commit)

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2025-04-14 06:59:21 +00:00
Suvendhu Hansa
f2ea1049e0 firewallmngr: fix duplicate rule entries 2025-04-12 08:24:33 +00:00
Mohd Mehdi
ba837ff98a qosmngr: unified service and datamodel daemon 2025-04-11 14:47:43 +00:00
Amin Ben Romdhane
324244d26b wifidmd: Refactor 'wifidmd' into a unified daemon 2025-04-11 14:35:11 +00:00
Amin Ben Romdhane
0cded2b974 bbfdm: 1.15.16 2025-04-11 16:34:26 +02:00
Amin Ben Romdhane
27f0f7454f decollector: 6.2.0.2 2025-04-11 16:10:32 +02:00
Marina Maslova
3ff559907b libwifi: 7.11.3 2025-04-11 18:01:50 +04:00
Marina Maslova
d73f8975cf hostmngr: 1.2.18 2025-04-11 17:58:43 +04:00
Jakob Olsson
3ddf258a74 map-agent: 6.3.4.3 2025-04-11 11:50:44 +02:00
Jakob Olsson
cd2c817223 map-controller: 6.3.0.11: add option to provision bridge 2025-04-11 11:43:53 +02:00
Jakob Olsson
370c5938aa map-agent: 6.3.4.2 2025-04-11 09:12:28 +02:00
Filip Matusiak
ddd88a894c map-agent: 6.3.4.1 2025-04-10 14:27:13 +02:00
Vivek Kumar Dutta
459f2571ec wifidmd: 1.0.35 2025-04-10 16:25:53 +05:30
Vivek Kumar Dutta
c555b48d16 tr143: support https url in download diagnostics 2025-04-10 15:38:25 +05:30
Vivek Kumar Dutta
6a0f353c93 hostmngr: removed remote ref in AssociatedDevice 2025-04-10 12:58:37 +05:30
Amin Ben Romdhane
21e742d9f7 sysmngr: Show Processes by 'PID', 'Memory' or 'CPU_Time' 2025-04-10 03:59:07 +00:00
Janusz Dziedzic
f4654e78c5 libwifi: 7.11.2 2025-04-09 13:55:49 +00:00
Reidar Cederqvist
72c3e3c8ce sulu: add device picture on the dashboard 2025-04-09 15:46:42 +02:00
Janusz Dziedzic
1adf7b669f libwifi: 7.11.1 2025-04-09 07:00:29 +00:00
Amin Ben Romdhane
39ec8635c3 ieee1905: 8.7.5 2025-04-08 15:02:03 +02:00
Amin Ben Romdhane
5a3fbb7902 wifidmd: 1.0.34 2025-04-08 14:21:02 +02:00
Amin Ben Romdhane
5ecc3945f9 netmngr: 1.1.6 2025-04-08 14:20:52 +02:00
Amin Ben Romdhane
8a52715ad1 dhcpmngr: 1.0.6 2025-04-08 14:20:36 +02:00
Amin Ben Romdhane
8333a499d0 bbfdm: 1.15.15 2025-04-08 09:30:20 +02:00
Vivek Kumar Dutta
941a46dae6 icwmp: Fix firewall rule on reload 2025-04-07 19:17:49 +05:30
Amin Ben Romdhane
86d7bf8c67 sysmngr: show only top N process 2025-04-05 15:40:21 +05:30
Reidar Cederqvist
4ef5d86feb Sulu version 4.1.0 - dark mode 2025-04-04 16:52:14 +02:00
Vivek Kumar Dutta
c97637fd5f wifidmd: Fix SSID management for wifi7 duts 2025-04-04 18:58:18 +05:30
Suvendhu Hansa
033613f999 icwmp: Support to whitelist Connection Request IPs 2025-04-04 12:30:55 +00:00
Reidar Cederqvist
b18f6dc39c update sulu to latest devel 2025-04-03 10:40:48 +02:00
Janusz Dziedzic
5f5b171d5a map-agent: 6.3.4.0 2025-04-03 07:18:22 +00:00
Janusz Dziedzic
469e9d1196 libwifi: 7.11.0 2025-04-02 09:28:52 +00:00
Sukru Senli
53b824d2e0 ethmngr: filter out wireless interfaces from ethernet hotplug event generation 2025-03-31 09:56:38 +00:00
Reidar Cederqvist
4df9b5ab94 update sulu-core to latest devel and align sulu-builder and sulu-core versions 2025-03-31 10:57:53 +02:00
Sukru Senli
130cf8fd53 ethmngr: add ruleng ethport recipe 2025-03-30 14:47:05 +02:00
Markus Gothe
bfd327ca02 Revert "ethmngr: add ruleng ethport recipe and generate deprecated ubus event"
This reverts commit 1d24d5c4f7.
2025-03-30 14:47:00 +02:00
Rahul Thakur
bcea816742 ethmngr: add ruleng recipe for ethport hotplug event
hotplug event generated now from ruleng recipe based on the
network.device event
2025-03-30 14:46:54 +02:00
Markus Gothe
ee6a27dc76 Revert "ethmngr: removed deprecated ethport hotplug handler"
This reverts commit dcfa48d1f7.
2025-03-30 14:46:46 +02:00
Markus Gothe
78eb76e913 Revert "ethmngr: generate ethport event using ruleng"
This reverts commit 56d352fc83.
2025-03-30 14:46:28 +02:00
Erik Karlsson
21c3354b31 sysmngr: remove deprecated hw.board.hasWifi use 2025-03-28 11:36:46 +01:00
Vivek Kumar Dutta
dcfa48d1f7 ethmngr: removed deprecated ethport hotplug handler 2025-03-28 09:39:34 +05:30
Vivek Kumar Dutta
56d352fc83 ethmngr: generate ethport event using ruleng 2025-03-27 17:48:22 +05:30
Vivek Kumar Dutta
56093ef532 icwmp: Fix duplicate events in Inform 2025-03-27 11:26:29 +05:30
Jakob Olsson
60f1d0edbf map-agent: 6.3.3.9 2025-03-25 14:18:40 +01:00
Jakob Olsson
c2021e765a map-controller: 6.3.0.10 2025-03-25 13:44:26 +01:00
Anjan Chanda
83c31acbc7 map-controller: 6.3.0.9 2025-03-25 10:57:45 +01:00
Vivek Kumar Dutta
9380411fa6 qosmngr: Fix regression in generating default classify rules 2025-03-24 13:39:08 +00:00
Vivek Kumar Dutta
2a47619b32 logmngr: multiple fixes
- Fix regression in generating log-rotate policy
- Fix logread output in case of file rotation
2025-03-24 18:37:58 +05:30
Vivek Kumar Dutta
f2c665a0cf logmngr: Fix remote logging 2025-03-24 16:45:38 +05:30
Erik Karlsson
1dca89c130 logmngr: use busybox klogd alongside fluent-bit 2025-03-21 22:24:29 +01:00
Erik Karlsson
63d3ca365b logmngr: remove fluent-bit kmsg support
Also remove apply_config_file which is dead code.
2025-03-21 17:48:39 +01:00
Erik Karlsson
fa4f08aa29 Revert "fluent-bit: enable kmsg plugin"
This reverts commit 01d320300e.
2025-03-21 17:48:39 +01:00
Jakob Olsson
858dd78ff7 map-controller: 6.3.0.4 2025-03-21 16:58:47 +01:00
Reidar Cederqvist
eb0e19355d sulu: performance optimizations 2025-03-21 15:38:20 +01:00
Suvendhu Hansa
4015982a87 gateway-info: Added enable option 2025-03-20 13:20:58 +00:00
Jakob Olsson
0b6e35e36b map-controller: 6.3.0.3 2025-03-20 13:57:07 +01:00
Vivek Kumar Dutta
cca03dc995 bbfdm: optimize get calls 2025-03-20 18:19:19 +05:30
Vivek Kumar Dutta
3d69811bf4 bbfdm: Fix instances in Security object 2025-03-20 18:15:56 +05:30
Vivek Kumar Dutta
5a7e44cd04 logmngr: include kernel logs 2025-03-20 18:11:36 +05:30
Anjan Chanda
b883f2b310 mapcontroller: uci-defaults: adapt 'sta_steering' config 2025-03-20 12:25:15 +01:00
Vivek Kumar Dutta
97a845fda2 self-diagnostics: compile logs in case of failure 2025-03-20 14:48:54 +05:30
Vivek Kumar Dutta
21cdf07e54 sysmngr: removed refresh handler for ProcessStatus 2025-03-20 10:13:53 +05:30
Vivek Kumar Dutta
13094c3a1b obuspa: Fix duplicate SecuredRole entry 2025-03-20 10:11:39 +05:30
Vivek Kumar Dutta
d3cb6a70da icwmp: added migration script for gateway-info options 2025-03-20 10:10:54 +05:30
Vivek Kumar Dutta
19570e553d icwmp: disable cpe GetRPCMethods 2025-03-19 22:05:30 +05:30
Vivek Kumar Dutta
50e2add3ab swmodd: updated root path to /apps 2025-03-19 16:20:51 +00:00
Vivek Kumar Dutta
e33340ea8d sysmngr: prepone init 2025-03-19 21:46:29 +05:30
Vivek Kumar Dutta
6b882610c2 ieee1905: updated default dm fallback values 2025-03-19 18:53:00 +05:30
Gouri Natarajan
383dedb443 self-diagnostics: add backhaul info 2025-03-19 12:28:08 +00:00
Vivek Kumar Dutta
a8a2066675 usermngr: 1.3.6 2025-03-19 17:18:14 +05:30
Erik Karlsson
73dfc49647 qosmngr: avoid potential race condition
Wait for background task to finish before reloading in the foreground.
2025-03-19 09:51:29 +01:00
Vivek Kumar Dutta
083cbd7b56 ddnsmngr: Fix duplicate update 2025-03-19 09:26:12 +05:30
Amin Ben Romdhane
e87bcbb819 map-agent: hotplug: map-dynamic-backhaul: Refactor port filtering and bridge detection logic 2025-03-18 14:45:14 +00:00
Reidar Cederqvist
f8561996ab sulu: update usp-js to version 0.4.11 2025-03-18 15:26:07 +01:00
Vivek Kumar Dutta
01d320300e fluent-bit: enable kmsg plugin 2025-03-18 19:34:59 +05:30
Amin Ben Romdhane
3faecd3979 bbfdm: 1.15.12 2025-03-18 13:03:08 +01:00
Amin Ben Romdhane
984962e34e bulkdata: Update JSON service 2025-03-18 12:48:25 +01:00
Filip Matusiak
6140bfa09c map-agent: 6.3.3.8 - add AGENT_UNASSOC_STA_CONT_MONITOR 2025-03-18 10:59:34 +00:00
Mohd Mehdi
2cbb433cbd qosmngr: use procd task for qos initialization 2025-03-18 07:53:44 +00:00
Janusz Dziedzic
c676cde1fb libwifi: 7.10.9 2025-03-17 18:17:22 +00:00
Markus Gothe
363c2ff155 ponmngr: Add support for PLOAM password. 2025-03-17 15:30:07 +01:00
Reidar Cederqvist
2a2650b43e sulu: use latest version of usp-js 2025-03-17 11:03:53 +01:00
Vivek Kumar Dutta
a5c13c4ae7 bbfdm: updated log level 2025-03-17 12:16:59 +05:30
Janusz Dziedzic
bf40d37745 libwifi: 7.10.8 2025-03-14 13:18:21 +00:00
George Yang
8889d06568 dectmngr: Do not install DCX81 firmware for Airoha platform
- Update the makefile
- Remove the .bin file for Airoha
2025-03-13 15:33:35 +00:00
Marina Maslova
e7d2f54bda libwifi: 7.10.7 2025-03-13 18:39:39 +04:00
Vivek Kumar Dutta
1e31d2accd bbfdm: 1.15.10 2025-03-13 19:10:09 +05:30
Sukru Senli
1e08854dce sulu-builder: update user 'user' ACL 2025-03-13 12:49:01 +00:00
Amin Ben Romdhane
cb27d96fe6 bbfdm: Increase ubus timeout 2025-03-13 13:36:34 +01:00
Vivek Kumar Dutta
943667adc6 bbfdm: 1.15.8
- Added a config option to force recompile of datamodel microservices
- Use service_name from service json for registration
2025-03-13 16:10:08 +05:30
Vivek Kumar Dutta
89b2c6ab19 udpecho: assign priority to dm plugin 2025-03-13 12:21:24 +05:30
Vivek Kumar Dutta
760cd38113 twamp: assign priority to dm plugin 2025-03-13 12:20:44 +05:30
Vivek Kumar Dutta
1abc312d2c tr471: assign priority to dm plugin 2025-03-13 12:20:14 +05:30
Vivek Kumar Dutta
09abf6d6b1 tr143: assign priority to dm plugin 2025-03-13 12:19:30 +05:30
Vivek Kumar Dutta
fa203d73e0 stunc: assign priority to dm plugin 2025-03-13 12:17:30 +05:30
Vivek Kumar Dutta
880741d8c3 self-diagnostics: assign priority to dm plugin 2025-03-13 12:16:55 +05:30
Vivek Kumar Dutta
42bd6390b5 qosmngr: assign priority to dm plugin 2025-03-13 12:16:02 +05:30
Vivek Kumar Dutta
c9856f2a5b port-trigger: assign priority to dm plugin 2025-03-13 12:15:14 +05:30
Vivek Kumar Dutta
c086f72400 packet-capture-diagnostics: assign priority to dm plugin 2025-03-13 12:11:57 +05:30
Vivek Kumar Dutta
a50c380722 logmngr: assign priority to dm plugin 2025-03-13 12:11:12 +05:30
Vivek Kumar Dutta
2755d6be1c icwmp: assign priority to dm plugin 2025-03-13 12:07:24 +05:30
Vivek Kumar Dutta
359db9ddc3 hostmngr: assign priority to dm plugin 2025-03-13 12:06:49 +05:30
Vivek Kumar Dutta
e4f3daf1ed dnsmngr: assign priority to dm plugin 2025-03-13 12:05:59 +05:30
Vivek Kumar Dutta
557ea195ba bridgemngr: assign priority to plugins 2025-03-13 12:05:14 +05:30
Vivek Kumar Dutta
1c14d9f652 bbfdm: option to assign priority between plugins 2025-03-13 12:03:06 +05:30
Mohd Husaam Mehdi
b8ebda638c parentalcontrol: do not add rule for web traffic directed to self
* this is not necessary for the functioning of urlfilter, only DNS
  traffic directed towards the device should be intercepted
* secondly, this is causing problems sometimes where DNS and HTTP
  traffic cannot flow if a large file (9MB tested) is downloaded
  from the device (for example, a urlbundle file), the reason for
  this is not known yet, but the fix is to not intercept web
  traffic directed to the DUT
2025-03-13 11:27:16 +05:30
Mohd Husaam Mehdi
db089a3920 parentalcontrol: only check urlbundle enable to download bundle 2025-03-12 23:53:38 +05:30
Jakob Olsson
4110c22f64 map-agent: 6.3.3.7 2025-03-12 16:51:10 +01:00
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
272 changed files with 8008 additions and 2945 deletions

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bbfdm
PKG_VERSION:=1.14.4
PKG_VERSION:=1.17.0
USE_LOCAL:=0
ifneq ($(USE_LOCAL),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/bbfdm.git
PKG_SOURCE_VERSION:=c8967d6bf47c8bc96cf8df94236b4edfc95aabea
PKG_SOURCE_VERSION:=a4f61081381a35fc98fa1cec58e964c3e6db2c55
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -70,6 +70,15 @@ define Package/bbfdmd/config
source "$(SOURCE)/Config_bbfdmd.in"
endef
# Below config is a hack to force-recompile dependent micro-services
define Package/libbbfdm-api/config
if PACKAGE_bbfdmd
config BBF_LIBBBFDM_VERSION
string "Internal config variable to force recompile"
default "v${PKG_VERSION}"
endif
endef
define Package/libbbfdm-api/description
Library contains the API(UCI, UBUS, JSON, CLI and Browse) of libbbfdm
endef
@@ -146,6 +155,10 @@ define Package/bbfdmd/install
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/etc/uci-defaults/91-fix-bbfdmd-enabled-option $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/ruleng.bbfdm $(1)/etc/uci-defaults
$(INSTALL_DIR) $(1)/etc/ruleng
$(INSTALL_BIN) ./files/etc/ruleng/bbfdm.json $(1)/etc/ruleng
endef
define Package/dm-service/install
@@ -154,6 +167,9 @@ 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

View File

@@ -6,6 +6,7 @@ BBFDM_BASE_DM_PATH=/usr/share/bbfdm
BBFDM_INPUT_PATH=/etc/bbfdm/micro_services
BBFDM_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
PKG_CONFIG_DEPENDS += CONFIG_BBF_LIBBBFDM_VERSION
#BBFDM_VERSION:=$(shell grep -oP '(?<=^PKG_VERSION:=).*' ${BBFDM_DIR}/Makefile)
#BBFDM_TOOLS:=$(BUILD_DIR)/bbfdm-$(BBFDM_VERSION)/tools
@@ -89,28 +90,3 @@ BBFDM_INSTALL_SCRIPT:=$(BBFDM_DIR)/tools/bbfdm.sh -s
BBFDM_REGISTER_SERVICES:=$(BBFDM_DIR)/tools/bbfdm.sh -t
# 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

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,16 +3,21 @@
"firewall",
"network",
"dhcp",
"time",
"wireless",
"time"
"ieee1905",
"mapcontroller",
"mosquitto",
"nginx",
"netmode"
],
"cwmp": [
"firewall",
"network",
"dhcp",
"stunc",
"xmpp",
"mapcontroller",
"wireless",
"time"
"time",
"netmode"
]
}

View File

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

View File

@@ -10,19 +10,10 @@ log() {
echo "${@}"|logger -t bbf.config -p info
}
create_needed_directories()
{
mkdir -p /tmp/bbfdm/.cwmp
mkdir -p /tmp/bbfdm/.usp
mkdir -p /tmp/bbfdm/.bbfdm
}
start_service()
{
local log_level
create_needed_directories
config_load bbfdm
config_get log_level "reload_handler" log_level 2

View File

@@ -0,0 +1,66 @@
{
"hosts_refresh": {
"if" : [
{
"event": "host"
}
],
"then" : [
{
"object": "bbfdm.hostmngr",
"method":"refresh_references_db",
"args" : {},
"timeout": 1
}
]
},
"dhcp_refresh": {
"if_operator": "OR",
"if" : [
{
"event": "host"
},
{
"event": "wifi.dataelements.Associated"
}
],
"then" : [
{
"object": "bbfdm.dhcpmngr",
"method":"refresh_references_db",
"args" : {},
"timeout": 1
}
]
},
"ieee1905_refresh_add": {
"if" : [
{
"event": "ieee1905.neighbor.add"
}
],
"then" : [
{
"object": "bbfdm.ieee1905",
"method":"refresh_references_db",
"args" : {},
"timeout": 1
}
]
},
"ieee1905_refresh_del": {
"if" : [
{
"event": "ieee1905.neighbor.del"
}
],
"then" : [
{
"object": "bbfdm.ieee1905",
"method":"refresh_references_db",
"args" : {},
"timeout": 1
}
]
}
}

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

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

View File

@@ -12,6 +12,7 @@ DEST=""
VENDOR_EXTN=""
TOOLS="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
SRC=""
EXTRA_DATA=""
while getopts ":mpsdtv:" opt; do
case ${opt} in
@@ -46,6 +47,9 @@ shift
DEST="${1}"
shift
DATA="${1}"
shift
EXTRA_DATA="${1}"
install_bin() {
if ! install -m0755 ${1} ${2}; then
@@ -144,8 +148,9 @@ if [ "${INPUT_FILE}" -eq "1" ]; then
exit 1
fi
if [ -z "${DATA}" ]; then
echo "# Package name not provided ...."
service_name="$(cat ${SRC}|jq -r '.daemon.service_name')"
if [ -z "${service_name}" ]; then
echo "# service_name not defined in service json ...."
exit 1
fi
@@ -156,7 +161,7 @@ if [ "${INPUT_FILE}" -eq "1" ]; then
fi
install_dir ${DEST}/etc/bbfdm/services
install_data ${tempfile} ${DEST}/etc/bbfdm/services/${DATA}.json
install_data ${tempfile} ${DEST}/etc/bbfdm/services/${service_name}.json
if [ -f "${tempfile}" ]; then
rm ${tempfile}
@@ -176,18 +181,19 @@ if [ "${MICRO_SERVICE}" -eq "1" ]; then
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/${DATA}.${extn##*.}
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})
bbfdm_install_dm ${SRC} ${DEST}/${BBFDM_BASE_DM_PATH}/micro_services/${DATA}/$(printf "%02d" ${EXTRA_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

View File

@@ -5,14 +5,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bridgemngr
PKG_VERSION:=1.0.11
PKG_VERSION:=1.1.1
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:=18c2921a1cf5bfa027c11c5e6ca605ef69fd1168
PKG_SOURCE_VERSION:=b6a657e1c83b49f09323b4012ef229c604b82854
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -59,8 +59,8 @@ define Package/bridgemngr/install
$(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) -v ${VENDOR_PREFIX} ./files/VLAN_Filtering_Extension.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/src/libbridgeext.so $(1) $(PKG_NAME) 10
$(BBFDM_INSTALL_MS_PLUGIN) -v ${VENDOR_PREFIX} ./files/VLAN_Filtering_Extension.json $(1) $(PKG_NAME) 11
endif
$(INSTALL_BIN) ./files/etc/init.d/bridging $(1)/etc/init.d/

View File

@@ -7,13 +7,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bulkdata
PKG_VERSION:=2.1.19
PKG_VERSION:=2.1.20
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/bulkdata.git
PKG_SOURCE_VERSION:=628525b02ae9ccd39f4bc85cf616ed4a102bca48
PKG_SOURCE_VERSION:=a5e57962938ca143ede65d92be90b6e9fce66e15
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif

View File

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

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ddnsmngr
PKG_VERSION:=1.0.10
PKG_VERSION:=1.0.12
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/ddnsmngr.git
PKG_SOURCE_VERSION:=5144e73fad92d23ae706894a4357436c3fe89355
PKG_SOURCE_VERSION:=44af9a7b3fec3929f8554af9633a5b8068189b48
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif

View File

@@ -1,22 +1,23 @@
#
# Copyright (C) 2021-2023 IOPSYS Software Solutions AB
# Copyright (C) 2021-2024 IOPSYS Software Solutions AB
# Copyright (C) 2025 Genexis AB
#
include $(TOPDIR)/rules.mk
PKG_NAME:=decollector
PKG_VERSION:=6.1.0.7
PKG_VERSION:=6.2.1.7
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=db4eae19a3f716eec5a37aa2786b9bbbe3160b54
PKG_SOURCE_VERSION:=ca92325ece080389ffb405c95048b64071eda653
PKG_SOURCE_URL:=https://dev.iopsys.eu/multi-ap/decollector.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@genexis.eu>
PKG_LICENSE:=BSD-3-Clause

View File

@@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dectmngr
PKG_RELEASE:=3
PKG_VERSION:=3.7.3
PKG_VERSION:=3.7.10
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=393dfd7637fdeccc24ef286c3daec9a232896b98
PKG_SOURCE_VERSION:=1f851980a6ba616df54f79930225f8bcd563b711
PKG_MIRROR_HASH:=skip
endif
@@ -56,11 +56,14 @@ 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
ifeq ($(CONFIG_TARGET_airoha),)
$(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

View File

@@ -1,3 +1,6 @@
config dect 'global'
option log_dect_cmbs 'syslog'
option log_level 'realtime,warning,error'
option log_dect_cmbs 'syslog'
option log_level 'realtime,warning,error'
config dect 'base'
option enable '1'

View File

@@ -11,6 +11,25 @@ LOG_PATH=/var/log/dectmngr
DB_PATH=/etc/dect
DCX81_UART_DT_ALIAS=/proc/device-tree/aliases/dcx81-uart
get_extension_shift() {
local dect_exts
get_dect_extension() {
local ext=$1
local type
config_get type $ext type
[ "$type" == "dect" ] && echo $ext
}
config_load "asterisk"
dect_exts=$(config_foreach get_dect_extension "extension" |sort |head -n1)
echo "${dect_exts#extension}"
}
# Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process.
stop_and_wait_dectmngr() {
dect_pid=$(pidof $PROG)
@@ -38,13 +57,53 @@ get_dcx81_device() {
device_name_line="$(grep '^DEVNAME=' "$uevent_file")" || return 1
readonly device="/dev/${device_name_line##DEVNAME=}"
[ -c "$device" ] || return 1
printf "%s" "$device"
printf "%s" "$(basename $device)"
return 0
fi
done
return 1
}
check_dcx81_firmware() {
local dcx81_uart=$1
local fw_link="/lib/firmware/dcx81_firmware"
local fw_file
[ -L "$fw_link" ] || return
fw_file=$(readlink -f $fw_link)
[ -f "$fw_file" ] || return
# the symbolic link is not needed
rm -f $fw_link
eval $(/sbin/cmbs_tcx -comname "$dcx81_uart" -fw_version |grep DCX81_FW_Version)
[ -n "$DCX81_FW_Version" ] || return
if echo $(basename $fw_file) | grep -qi "$DCX81_FW_Version" ; then
logger -t "$PROG" "DCX81 running expected $DCX81_FW_Version"
return;
fi
logger -t "$PROG" "DCX81 firmware upgrading to $fw_file"
/sbin/cmbs_tcx -comname "$dcx81_uart" -fwu "$fw_file" 2>&1 >/dev/null &
echo -n "Updrading DCX81 firmware.." >/dev/console
local wait_time=0
while pidof cmbs_tcx >/dev/null && [ "$wait_time" -lt "200" ] ; do
sleep 5
wait_time=$(($wait_time + 5))
echo -n "." >/dev/console
done
if pidof cmbs_tcx >/dev/null ; then
killall -9 cmbs_tcx
logger -t "$PROG" "DCX81 firmware upgrade timeout"
else
logger -t "$PROG" "DCX81 firmware upgrade done"
fi
}
start_service() {
local opt_ext=
local rfpi=
@@ -59,9 +118,13 @@ start_service() {
local dcx81_uart_device
if ! dcx81_uart_device="$(get_dcx81_device)"; then
logger -t "$PROG" -p daemon.warning "Could not determine DCX81 UART device. Falling back to default ttyH0."
dcx81_uart_device=/dev/ttyH0
dcx81_uart_device="ttyH0"
fi
check_dcx81_firmware $dcx81_uart_device
opt_ext="-extensionShift $(get_extension_shift)"
rfpi=$(db -q get hw.board.dect_rfpi)
[ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_ext="$opt_ext -rfpi $rfpi"
@@ -77,24 +140,27 @@ start_service() {
config_load dect
config_get log_dect_cmbs global log_dect_cmbs syslog
config_get pcm_slot_start global pcm_slot_start
config_get pcm_fsync global pcm_fsync
[ -n "$pcm_fsync" ] && opt_ext="$opt_ext -sync $pcm_fsync"
[ -n "$pcm_slot_start" ] && opt_ext="$opt_ext -slotsShift $pcm_slot_start"
procd_open_instance
# dectmngr takes expects device without /dev
readonly dcx81_uart_device_wo_dev="${dcx81_uart_device##/dev/}"
case "$log_dect_cmbs" in
none)
echo "Starting dectmngr with cmbs logging disabled"
procd_set_param command "$PROG" -comname "$dcx81_uart_device_wo_dev" $opt_ext
procd_set_param command "$PROG" -comname "$dcx81_uart_device" $opt_ext
rm -f $LOG_PATH/*
;;
file)
echo "Starting dectmngr with cmbs logging enabled to file"
procd_set_param command "$PROG" -comname "$dcx81_uart_device_wo_dev" -log $LOG_PATH/dect-cmbs.log $opt_ext
procd_set_param command "$PROG" -comname "$dcx81_uart_device" -log $LOG_PATH/dect-cmbs.log $opt_ext
;;
*)
echo "Starting dectmngr with cmbs logging enabled to syslog"
procd_set_param command "$PROG" -comname "$dcx81_uart_device_wo_dev" -syslog $opt_ext
procd_set_param command "$PROG" -comname "$dcx81_uart_device" -syslog $opt_ext
rm -f $LOG_PATH/*
;;
esac

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dhcpmngr
PKG_VERSION:=1.0.5
PKG_VERSION:=1.0.6
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/dhcpmngr.git
PKG_SOURCE_VERSION:=2a517188211849bcc324a9f9727eeb34d076c032
PKG_SOURCE_VERSION:=986f66608959f4f589009d580b046e250d8c620d
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif

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.14
PKG_VERSION:=1.0.18
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/dnsmngr.git
PKG_SOURCE_VERSION:=e64ec01b57d8b32e5230b34f6a3866250b1a8faf
PKG_SOURCE_VERSION:=80fa147e6f1f0d9c1a62a62a693ff3adaef45363
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -64,11 +64,15 @@ 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)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/src/libdns_sd.so $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/src/libdns_sd.so $(1) $(PKG_NAME) 10
endif
endef

View File

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

View File

@@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dslmngr
PKG_VERSION:=1.2.9
PKG_VERSION:=1.2.10
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/hal/dslmngr.git
PKG_SOURCE_VERSION:=5340cb31f759301f5aca3fd848fc3a63b0b4663f
PKG_SOURCE_VERSION:=8fb4093b4d26b3cb06603e110d424005e33cf5d6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MAINTAINER:=Rahul Thakur <rahul.thakur@iopsys.eu>
PKG_MIRROR_HASH:=skip
@@ -30,6 +30,8 @@ include ../bbfdm/bbfdm.mk
ifeq ($(CONFIG_TARGET_brcmbca),y)
TARGET_PLATFORM=BROADCOM
else ifneq ($(CONFIG_TARGET_airoha),)
TARGET_PLATFORM=AIROHA
else
$(info Unexpected CONFIG_TARGET)
endif
@@ -41,7 +43,7 @@ define Package/dslmngr
CATEGORY:=Utilities
TITLE:=XDSL status and configration utility
DEPENDS:=+libdsl +libuci +libubox +ubus +libpthread +libnl-genl +libeasy
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service +TARGET_airoha:br2684ctl
endef
define Package/dslmngr/description
@@ -75,7 +77,10 @@ define Package/dslmngr/install
$(CP) ./files/common/* $(1)/
ifeq ($(CONFIG_TARGET_brcmbca),y)
$(CP) ./files/broadcom/* $(1)/
else ifneq ($(CONFIG_TARGET_airoha),)
$(CP) ./files/airoha/* $(1)/
endif
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/dslmngr $(1)/sbin/
$(BBFDM_REGISTER_SERVICES) ./bbfdm_service.json $(1) $(PKG_NAME)

View File

@@ -0,0 +1,26 @@
#!/bin/sh /etc/rc.common
START=99
STOP=99
USE_PROCD=1
start_service() {
readonly need_xdsl="$(jsonfilter -i /etc/board.json -e @.dsl)"
[ -f /etc/board.json ] || return 0
if [ "$need_xdsl" != "" ]; then
procd_open_instance xdsl_wan
procd_set_param command /sbin/xdsl_wan
procd_set_param respawn
procd_close_instance
fi
}
boot() {
: # boot-up is handled from 'hsm' application
}
service_triggers()
{
procd_add_reload_trigger "dsl"
}

View File

@@ -0,0 +1,28 @@
#!/bin/sh
. /lib/functions.sh
xtm_remove_devices() {
:
}
xtm_create_devices() {
:
}
xdsl_configure() {
# Support bridged WAN interface
ebtables --concurrent -t broute -D BROUTING -p 0xbeed -j DROP 2> /dev/null
ebtables --concurrent -t broute -I BROUTING -p 0xbeed -j DROP
}
xdsl_stop() {
return 0
}
xdsl_init() {
readonly need_xdsl="$(jsonfilter -i /etc/board.json -e @.dsl)"
[ "$need_xdsl" = "" ] && exit 0
echo "Starting DSL"
}

View File

@@ -0,0 +1,240 @@
#!/bin/sh
source "/lib/functions.sh"
source "/lib/functions/network.sh"
source "/lib/functions/system.sh"
PREVLINK=""
PREVWANMODE=""
WANMODE=""
CONFIGURED=0
CINDEX=0
WANPORT="$(jsonfilter -i /etc/board.json -e @.network.wan.device)"
delete_atm_device() {
/userfs/bin/blapi_cmd xdsl atm_delete_interface $CINDEX
CINDEX=$((CINDEX+1))
}
delete_atm_devices() {
CINDEX=0
config_load dsl
config_foreach delete_atm_device atm-device
}
configure_atm_device() {
local vpi vci encapsulation qos_class pcr mbs scr
local encap qos ethmac
config_get vpi $1 vpi "8"
config_get vci $1 vci "35"
config_get encapsulation $1 encapsulation "llc"
config_get qos_class $1 qos_class "ubr"
config_get pcr $1 pcr "0"
config_get mbs $1 mbs "0"
config_get scr $1 scr "0"
case $encapsulation in # llc, vcmux
vcmux)
encap="1483 Bridged IP VC-Mux"
;;
*)
encap="1483 Bridged IP LLC"
;;
esac
ethmac="$(echo -n "$(macaddr_add 02:AA:BB:01:23:40 $((CINDEX+2)))" | sed 's#:##g')"
/userfs/bin/blapi_cmd xdsl create_device $CINDEX ATM "" "$ethmac"
/userfs/bin/blapi_cmd xdsl atm_create_interface $CINDEX ATM "$qos_class" "$encap" "$vpi" "$vci" "$pcr" "$scr" "$mbs" 0
CINDEX=$((CINDEX+1))
}
create_atm_devices() {
delete_atm_devices
CINDEX=0
config_foreach configure_atm_device atm-device
}
configure_line() {
local mode profile bitswap sra us0 sesdrop sos ginp mod prof
local adsl1_flag=0 issue2_flag=0 Glite_flag=0 adsl2_flag=0 adsl2p_flag=0 vdsl2_flag=0
local pro_8a_flag=0 pro_8b_flag=0 pro_8c_flag=0 pro_8d_flag=0 pro_12a_flag=0 pro_12b_flag=0 pro_17a_flag=0 pro_30a_flag=0 pro_35b_flag=0
config_get mode $1 mode "vdsl2"
config_get profile $1 profile "35b"
config_get bitswap $1 bitswap "1"
config_get sra $1 sra "1"
config_get us0 $1 us0 "1"
config_get sos $1 sos "0"
config_get sos $1 roc "0"
config_get sos $1 ginp "0"
for mod in $mode; do
[ "$mod" = "gdmt" ] && adsl1_flag=1
[ "$mod" = "glite" ] && Glite_flag=1
[ "$mod" = "t1413" ] && issue2_flag=1
[ "$mod" = "adsl2" ] && adsl2_flag=1
[ "$mod" = "adsl2p" ] && adsl2p_flag=1
[ "$mod" = "vdsl2" ] && vdsl2_flag=1
done
for prof in $profile; do
[ "$prof" = "8a" ] && pro_8a_flag=1
[ "$prof" = "8b" ] && pro_8b_flag=1
[ "$prof" = "8c" ] && pro_8c_flag=1
[ "$prof" = "8d" ] && pro_8d_flag=1
[ "$prof" = "12a" ] && pro_12a_flag=1
[ "$prof" = "12b" ] && pro_12b_flag=1
[ "$prof" = "17a" ] && pro_17a_flag=1
[ "$prof" = "30a" ] && pro_30a_flag=1
[ "$prof" = "35b" ] && pro_35b_flag=1
done
/userfs/bin/blapi_cmd xdsl set_adsl_profile "$pro_8a_flag" "$pro_8b_flag" "$pro_8c_flag" "$pro_8d_flag" "$pro_12a_flag" "$pro_12b_flag" "$pro_17a_flag" "$pro_30a_flag" "$pro_35b_flag"
/userfs/bin/blapi_cmd xdsl set_adsl_mode "$adsl1_flag" "$issue2_flag" "$Glite_flag" "$adsl2_flag" "$adsl2p_flag" "$vdsl2_flag"
/userfs/bin/blapi_cmd xdsl set_adsl_ginp "$((!ginp))"
/userfs/bin/blapi_cmd xdsl set_adsl_sos_roc "$((!sos))" "$((!roc))"
/userfs/bin/blapi_cmd xdsl set_adsl_us0 "$((!us0))"
/userfs/bin/blapi_cmd xdsl set_adsl_sra "$((!sra))"
/userfs/bin/blapi_cmd xdsl set_adsl_bitswap "$((!bitswap))"
CONFIGURED=1
}
configure_lines() {
config_load dsl
config_foreach configure_line dsl-line
}
call_wan_hotplug() {
# initializations
local updown="$1"
local ethwan="$2"
# ethernet hotlugs expect LINK and PORT environment variables set
env -i LINK="$updown" PORT="$ethwan" /sbin/hotplug-call ethernet
}
if [ "$WANPORT" = "ae_wan" -a -f /proc/device-tree/ae_wan/wan-dsl ]; then
/etc/init.d/br2684ctl stop
else
/etc/init.d/br2684ctl start
fi
# Wait for nas0 interface to come up.
while [ "$(devstatus "$WANPORT" | jsonfilter -e @.up)" != "true" ]; do
sleep 1
done
while [ true ]; do
LINK="$(awk '/ADSL link status:/{print $4}' /proc/tc3162/adsl_stats)"
[ \( "$LINK" = "down" -o "$LINK" = "up" \) ] && break
sleep 1
done
sleep 2
/userfs/bin/blapi_cmd xdsl set_adsl_sysvid "26 00 47 4E 58 53 00 00" # GNXS vendor id
/userfs/bin/blapi_cmd xdsl set_adsl_version "$(ubus call fwbank dump | jsonfilter -e "@.bank[@.active=true].swver" | cut -f1 -d'_' | cut -f1 -d'-' | hexdump -e '11/1 "%02x " "\n"' | head -n1)"
/userfs/bin/blapi_cmd xdsl set_power_up_down 1
/userfs/bin/blapi_cmd xdsl set_power_up_down 0
sleep 1
while [ true ]; do
LINK="$(awk '/ADSL link status:/{print $4}' /proc/tc3162/adsl_stats)"
if [ "$LINK" != "$PREVLINK" -a \( "$LINK" = "down" -o "$LINK" = "up" \) ]; then
if [ "$LINK" = "down" ]; then
[ "$CONFIGURED" -eq 0 ] && configure_lines # Needs to be done once the slave SoC is in down state and we've not been able to auto-sync.
if [ -n "$WANMODE" ]; then
if [ "$WANMODE" = "PTM" ]; then
/userfs/bin/blapi_cmd xdsl ptm_do_reset_sequence 0 1
else
delete_atm_devices
fi
fi
call_wan_hotplug "down" "$WANPORT"
else
CONFIGURED=1
WANMODE="$(awk '/TPSTC type:/{print $4}' /proc/tc3162/adsl_stats)"
if [ "$WANMODE" != "$PREVWANMODE" ]; then
OLDWANPORT="$WANPORT"
network_defer_device "$OLDWANPORT"
if [ -f /proc/device-tree/ae_wan/wan-dsl ]; then
WANPORT="ae_wan"
else
WANPORT="nas10"
fi
if [ "$WANMODE" = "PTM" ]; then
/etc/init.d/br2684ctl stop
delete_atm_devices
/userfs/bin/blapi_cmd system set_wan_mode 1
/userfs/bin/blapi_cmd xdsl reload_ko 2
/userfs/bin/blapi_cmd xdsl ptm_do_reset_sequence 1 2
# Set extended TPID for PTM packet flow
sys memwl 1FB50000 81001839
# VLAN TPID - VLAN
sys memwl 1FB50F18 8100
ifconfig ${WANPORT} mtu 1500
else
/userfs/bin/blapi_cmd system set_wan_mode 0
/userfs/bin/blapi_cmd xdsl reload_ko 1
/etc/init.d/br2684ctl start
# Set extended TPID for ATM packet flow
sys memwl 1FB50000 884C1839
# VLAN TPID - MPOA
sys memwl 1FB50F18 884C
ifconfig ${WANPORT} mtu 1982
ifconfig ${WANPORT} down up
OLDWANPORT="$WANPORT"
ATMINDEX="$(cat /sys/class/atm/TSARM*/atmindex | tail -n1 2> /dev/null)"
WANPORT="nas$((ATMINDEX))"
fi
if [ "$OLDWANPORT" != "$WANPORT" ]; then
call_wan_hotplug "down" "$OLDWANPORT"
FILES="$(grep "$OLDWANPORT" /etc/config/* | cut -f1 -d: | uniq | cut -f4 -d/ | xargs)"
for FILE in $FILES; do
sed -i -e "s#${OLDWANPORT}#${WANPORT}#g" "/etc/config/${FILE}"
"/etc/init.d/${FILE}" restart
done
else
/etc/init.d/network restart
fi
ifconfig ${OLDWANPORT} down up
fi
if [ "$WANMODE" = "PTM" ]; then
: # ToDo
else
create_atm_devices
fi
call_wan_hotplug "up" "$WANPORT"
PREVWANMODE="$WANMODE"
fi
# Toggle link state
network_defer_device "$WANPORT"
network_ready_device "$WANPORT"
# We are only interested in the transtion from init -> up/down and up/down -> down/up and vice versa.
# Since we poll the status via in-band signaling packets might get lost and the /procfs file is empty.
# This state we don't want to handle as it will toggle the link and do a re-setup which is totally unnecessary and unwanted.
PREVLINK="$LINK"
fi
sleep 5
done

View File

@@ -25,6 +25,7 @@ config dsl-line line
list profile 12b
list profile 17a
list profile 30a
list profile 35b
option bitswap 1
option sra 1
option us0 1 # VDSL2 only

View File

@@ -6,14 +6,14 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ebtables-extensions
PKG_VERSION:=2.0.4
PKG_VERSION:=2.0.5
PKG_LICENSE:=GPL-2.0
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/ebtables-extensions.git
PKG_SOURCE_VERSION:=9a2af49b455ee25ca0694274e004ced7c09855a0
PKG_SOURCE_VERSION:=7357622d806833d93d317164dc6673fbf5fd1629
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -189,9 +189,7 @@ define KernelPackage/ebt-mldsnooping/description
Kernel module to enable MLD snooping for ebtables
endef
ifeq ($(CONFIG_TARGET_brcmbca),y)
include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
endif
-include ../../broadcom/bcmkernel/bcm-kernel-toolchain.mk
define Build/Prepare
@@ -236,7 +234,6 @@ endif
$(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

View File

@@ -5,14 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ethmngr
PKG_VERSION:=3.0.5
PKG_VERSION:=3.0.8
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/hal/ethmngr.git
PKG_SOURCE_VERSION:=01e1c5f6642a8fa79fc445c71558ad02bda40eb5
PKG_MAINTAINER:=Rahul Thakur <rahul.thakur@iopsys.eu>
PKG_SOURCE_VERSION:=c73e5b15718ca40b2740bbe6151dfbb2bcca16df
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif

View File

@@ -1,23 +0,0 @@
#!/bin/sh
[ -n "$PORT" -a -n "$LINK" ] || exit 0
case "$PORT" in
# do not generate ethport ubus event
# for wifi, dsl and brige devices
wl*|wds*|atm*|ptm*|br-*)
exit 0
;;
esac
speed=0
duplex=full
if [ "$LINK" = "up" ]; then
devspeed="$(ubus -t 2 call network.device status "{\"name\":\"$PORT\"}" | jsonfilter -e @.speed)"
speed=${devspeed:0:-1}
duplex=${devspeed:0-1}
[ "$duplex" == "H" ] && duplex="half" || duplex="full"
fi
ubus send ethport "{\"ifname\":\"$PORT\",\"link\":\"$LINK\",\"speed\":\"$speed\",\"duplex\":\"$duplex\"}"

View File

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

View File

@@ -0,0 +1,2 @@
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.9
PKG_VERSION:=1.0.10
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/firewallmngr.git
PKG_SOURCE_VERSION:=77ad8425b73a3ac63f6160dc217635394ac87907
PKG_SOURCE_VERSION:=05ad0d6f7f21520eecd05429c14d1963de2a8463
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

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

@@ -2,12 +2,14 @@
. /lib/functions.sh
ZONE_NAME_FILE="/tmp/service_fw_zone"
log() {
echo "${@}"|logger -t firewall.service -p info
}
exec_cmd() {
if ! eval "$*"; then
if ! "$@"; then
log "Failed to run [$*]"
echo "-1"
return 0
@@ -17,6 +19,37 @@ exec_cmd() {
return 0
}
collect_zone_name() {
local name network
config_get name "${1}" name ""
if [ -z "${name}" ]; then
return
fi
config_get network "${1}" network ""
for i in ${network}; do
var="${i}_zone"
echo "${var}=${name}" >> "${ZONE_NAME_FILE}"
done
}
load_zone_names() {
rm -f "${ZONE_NAME_FILE}"
config_foreach collect_zone_name zone
}
get_firewall_zone() {
if [ ! -f "${ZONE_NAME_FILE}" ]; then
echo ""
return
fi
var="${1}_zone="
name="$(cat ${ZONE_NAME_FILE} | grep ${var} | head -n 1 | cut -d'=' -f 2)"
echo "${name}"
}
add_iptable_rule() {
chain_name=$1
protocol=$2
@@ -73,7 +106,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 +119,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 +130,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 +143,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
@@ -135,9 +168,14 @@ add_service() {
fi
action=$(echo "${target}" | tr a-z A-Z)
chain_name="zone_${interface}_input"
res=0
zone_name="$(get_firewall_zone ${interface})"
if [ -z "${zone_name}" ]; then
log "Rule can not be added without zone name for interface ${interface}"
return
fi
chain_name="zone_${zone_name}_input"
res=0
count=$(echo "${proto}" | sed -n "/-1/p" | wc -l)
if [ "${count}" -eq 0 ]; then
@@ -160,4 +198,9 @@ add_service() {
}
config_load firewall
load_zone_names
config_foreach add_service "service"
rm -f "${ZONE_NAME_FILE}"

View File

@@ -7,7 +7,11 @@ USE_PROCD=1
. /lib/port-trigger/port_trigger.sh
start_service() {
port_trigger_handling
port_trigger_add
}
stop_service() {
port_trigger_clean
}
service_triggers()
@@ -17,5 +21,6 @@ service_triggers()
}
reload_service() {
stop
start
}

View File

@@ -119,18 +119,12 @@ process_port_trigger() {
fi
}
port_trigger_handling() {
port_trigger_add() {
rm /tmp/port_trigger_iptables 2> /dev/null
rm /tmp/port_trigger_ip6tables 2> /dev/null
touch /tmp/port_trigger_iptables
touch /tmp/port_trigger_ip6tables
echo "iptables -w -t nat -F prerouting_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
echo "iptables -w -t filter -F forwarding_wan_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
echo "iptables -w -t nat -F prerouting_wan_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
echo "ip6tables -w -t nat -F prerouting_porttrigger 2> /dev/null">>/tmp/port_trigger_ip6tables
echo "ip6tables -w -t filter -F forwarding_wan_porttrigger 2> /dev/null">>/tmp/port_trigger_ip6tables
echo "iptables -w -t nat -N prerouting_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
ret=$?
[ $ret -eq 0 ] && echo "iptables -w -t nat -I PREROUTING -j prerouting_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
@@ -139,7 +133,7 @@ port_trigger_handling() {
[ $ret -eq 0 ] && echo "iptables -w -t filter -I forwarding_wan_rule -j forwarding_wan_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
echo "iptables -w -t nat -N prerouting_wan_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
ret=$?
[ $ret -eq 0 ] && echo "iptables -w -t nat -I prerouting_wan_rule -j prerouting_wan_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
[ $ret -eq 0 ] && echo "iptables -w -t nat -A prerouting_wan_rule -j prerouting_wan_porttrigger 2> /dev/null">>/tmp/port_trigger_iptables
echo "ip6tables -w -t nat -N prerouting_porttrigger 2> /dev/null">>/tmp/port_trigger_ip6tables
ret=$?
@@ -155,3 +149,21 @@ port_trigger_handling() {
sh /tmp/port_trigger_iptables
sh /tmp/port_trigger_ip6tables
}
port_trigger_clean() {
iptables -w -t nat -D PREROUTING -j prerouting_porttrigger 2> /dev/null
iptables -w -t nat -F prerouting_porttrigger 2> /dev/null
iptables -w -t nat -X prerouting_porttrigger 2> /dev/null
iptables -w -t nat -D prerouting_wan_rule -j prerouting_wan_porttrigger 2> /dev/null
iptables -w -t nat -F prerouting_wan_porttrigger 2> /dev/null
iptables -w -t nat -X prerouting_wan_porttrigger 2> /dev/null
iptables -w -t filter -D forwarding_wan_rule -j forwarding_wan_porttrigger 2> /dev/null
iptables -w -t filter -F forwarding_wan_porttrigger 2> /dev/null
iptables -w -t filter -X forwarding_wan_porttrigger 2> /dev/null
ip6tables -w -t nat -D PREROUTING -j prerouting_porttrigger 2> /dev/null
ip6tables -w -t nat -F prerouting_porttrigger 2> /dev/null
ip6tables -w -t nat -X prerouting_porttrigger 2> /dev/null
ip6tables -w -t filter -D forwarding_wan_rule -j forwarding_wan_porttrigger 2> /dev/null
ip6tables -w -t filter -F forwarding_wan_porttrigger 2> /dev/null
ip6tables -w -t filter -X forwarding_wan_porttrigger 2> /dev/null
}

View File

@@ -1,18 +1,20 @@
#
# Copyright (C) 2024 IOPSYS
# Copyright (C) 2024-2025 IOPSYS
#
include $(TOPDIR)/rules.mk
PKG_NAME:=fluent-bit
PKG_VERSION:=3.1.0
PKG_VERSION:=4.0.4
PKG_RELEASE:=$(AUTORELEASE)
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/fluent/fluent-bit.git
PKG_SOURCE_VERSION=v$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/fluent/fluent-bit/archive/v$(PKG_VERSION)
PKG_HASH:=7a49e110cf3050b6c29c911063494b8081f3c743274d1d95e52562d0476ba1eb
PKG_MIRROR_HASH:=skip
endif
PKG_LICENSE:=Apache-2.0
@@ -23,7 +25,7 @@ include $(INCLUDE_DIR)/cmake.mk
define Package/fluent-bit
CATEGORY:=Utilities
DEPENDS:= +libyaml +libopenssl +libcurl +libatomic +musl-fts +flex +bison
DEPENDS:= +libyaml +libopenssl +libcurl +libatomic +musl-fts +flex +bison +libstdcpp +@OPENSSL_WITH_NPN
TITLE:=Fluent-Bit
URL:=https://fluentbit.io/
endef
@@ -45,13 +47,14 @@ CMAKE_OPTIONS+= \
-DFLB_RELEASE=Yes \
-DFLB_SMALL=No \
-DEXCLUDE_FROM_ALL=true \
-DFLB_SHARED_LIBS=Yes \
-DFLB_SHARED_LIB=Yes \
-DFLB_DEBUG=Yes \
-DFLB_ALL=No \
-DFLB_JEMALLOC=No \
-DFLB_EXAMPLES=No \
-DFLB_CHUNK_TRACE=No \
-DFLB_BACKTRACE=No \
-DFLB_KAFKA=No \
-DFLB_WASM=No \
-DFLB_LUAJIT=No
@@ -63,15 +66,15 @@ CMAKE_OPTIONS += \
-DFLB_IN_DISK=Yes \
-DFLB_IN_EXEC=Yes \
-DFLB_IN_HEAD=Yes \
-DFLB_IN_KMSG=Yes \
-DFLB_IN_TAIL=Yes \
-DFLB_IN_FORWARD=No \
-DFLB_IN_KMSG=No \
-DFLB_IN_PROC=No \
-DFLB_IN_RANDOM=No \
-DFLB_IN_SERIAL=No \
-DFLB_IN_MQTT=No \
-DFLB_IN_STDIN=No \
-DFLB_IN_SYSTEMD=No \
-DFLB_IN_TAIL=No \
-DFLB_IN_TCP=No \
-DFLB_IN_THERMAL=No \
-DFLB_IN_UDP=No \
@@ -100,7 +103,7 @@ CMAKE_OPTIONS += \
# Filter options
CMAKE_OPTIONS +=
CMAKE_OPTIONS += \
-DFLB_FILTER_AWS=No \
-DFLB_FILTER_ECS=No \
-DFLB_FILTER_KUBERNETES=No \
@@ -138,6 +141,7 @@ CMAKE_OPTIONS += \
-DFLB_OUT_ES=No \
-DFLB_OUT_GELF=No \
-DFLB_OUT_INFLUXDB=No \
-DFLB_OUT_KAFKA=No \
-DFLB_OUT_NRLOGS=No \
-DFLB_OUT_OPENSEARCH=No \
-DFLB_OUT_TD=No \
@@ -167,6 +171,7 @@ CMAKE_OPTIONS += \
define Package/fluent-bit/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/fluent-bit
$(INSTALL_DIR) $(1)/etc/fluent-bit/conf.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/fluent-bit $(1)/usr/sbin/
$(INSTALL_DATA) ./files/fluent-bit.conf $(1)/etc/fluent-bit/fluent-bit.conf
$(INSTALL_DATA) $(PKG_BUILD_DIR)/conf/parsers.conf $(1)/etc/fluent-bit/parsers.conf

View File

@@ -9,6 +9,10 @@
tag syslog
path /dev/log
[INPUT]
name kmsg
tag kernel
[OUTPUT]
name null
match *

View File

@@ -0,0 +1,47 @@
diff --git a/plugins/out_syslog/syslog.c b/plugins/out_syslog/syslog.c
index 4ecc7c4ac..cfe568245 100644
--- a/plugins/out_syslog/syslog.c
+++ b/plugins/out_syslog/syslog.c
@@ -776,12 +776,42 @@ static flb_sds_t syslog_format(struct flb_syslog *ctx, msgpack_object *o,
}
if (ctx->parsed_mode != FLB_SYSLOG_UDP) {
+ unsigned int msg_len = 0;
+
+ /* Create new SDS for length prefix */
+ flb_sds_t prefix = flb_sds_create_size(ctx->maxsize + 32);
+ if (!prefix) {
+ ret_sds = NULL;
+ goto clean;
+ }
+
+ /* Add newline also to make behaviour similar to syslog-ng */
tmp = flb_sds_cat(*s, "\n", 1);
if (!tmp) {
+ flb_sds_destroy(prefix);
ret_sds = NULL;
goto clean;
}
*s = tmp;
+
+ msg_len = flb_sds_len(*s);
+ tmp = flb_sds_printf(&prefix, "%u ", msg_len);
+ if (!tmp) {
+ flb_sds_destroy(prefix);
+ ret_sds = NULL;
+ goto clean;
+ }
+ prefix = tmp;
+
+ tmp = flb_sds_cat(prefix, *s, msg_len);
+ if (!tmp) {
+ flb_sds_destroy(prefix);
+ ret_sds = NULL;
+ goto clean;
+ }
+
+ flb_sds_destroy(*s);
+ *s = tmp;
}
}
else {

View File

@@ -0,0 +1,32 @@
diff --git a/plugins/in_kmsg/in_kmsg.c b/plugins/in_kmsg/in_kmsg.c
index cd5c4cd17..9524cf194 100644
--- a/plugins/in_kmsg/in_kmsg.c
+++ b/plugins/in_kmsg/in_kmsg.c
@@ -165,6 +165,15 @@ static inline int process_line(const char *line,
flb_time_set(&ts, ctx->boot_time.tv_sec + tv.tv_sec, tv.tv_usec * 1000);
+ /* Format syslog timestamp: "Jul 03 10:31:53" */
+ time_t real_time = ctx->boot_time.tv_sec + tv.tv_sec;
+ struct tm tm_info;
+ char syslog_ts[32];
+
+ localtime_r(&real_time, &tm_info);
+ strftime(syslog_ts, sizeof(syslog_ts), "%b %d %H:%M:%S", &tm_info);
+ int syslog_ts_len = strlen(syslog_ts);
+
/* Now process the human readable message */
p = strchr(p, ';');
if (!p) {
@@ -198,7 +207,10 @@ static inline int process_line(const char *line,
FLB_LOG_EVENT_UINT64_VALUE(tv.tv_usec),
FLB_LOG_EVENT_CSTRING_VALUE("msg"),
- FLB_LOG_EVENT_STRING_VALUE((char *) p, line_len - 1));
+ FLB_LOG_EVENT_STRING_VALUE((char *) p, line_len - 1),
+
+ FLB_LOG_EVENT_CSTRING_VALUE("syslog_ts"),
+ FLB_LOG_EVENT_STRING_VALUE(syslog_ts, syslog_ts_len));
}
if (ret == FLB_EVENT_ENCODER_SUCCESS) {

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

@@ -1,12 +1,12 @@
{
"daemon": {
"enable": "1",
"service_name": "wifidmd.dataelements",
"service_name": "gateway-info",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "WiFi"
"object": "GatewayInfo"
}
],
"config": {

View File

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

View File

@@ -0,0 +1,288 @@
#!/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_bool enable global enable '1'
config_get wan_intf global wan_interface "wan"
config_get lan_intf global lan_interface "lan"
if [ "${enable}" -eq 0 ]; then
return 0
fi
# 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,367 @@
#!/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_bool enable global enable '1'
config_get wan_intf global wan_interface "wan"
if [ "${enable}" -eq 0 ]; then
return 0
fi
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

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=hostmngr
PKG_VERSION:=1.2.14
PKG_VERSION:=1.3.1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=6ea9fdb38a8e067b850841d6e7f7266bf76c363a
PKG_SOURCE_VERSION:=3663ca4d001508509774115d6797b932f9ed4f69
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
@@ -77,7 +77,7 @@ define Package/hostmngr/install
$(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)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/src/bbf_plugin/libhostext.so $(1) $(PKG_NAME) 10
endif
endef

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

@@ -7,4 +7,16 @@ config ICWMP_MGMT_FROM_USP
config ICWMP_BACKUP_EVENTS
bool "Create backup of session events to persistent storage after each successful session"
default y
config ICWMP_ENABLE_VENDOR_EXTN
bool "Enable datamodel vendor extension"
default y
config ICWMP_VENDOR_PREFIX
string "Package specific datamodel Vendor Prefix for TR181 extensions"
default ""
config ICWMP_ENABLE_SMM_SUPPORT
bool "Enable software module management support"
default n
endmenu

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,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=9.8.29
PKG_VERSION:=9.9.10
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/icwmp.git
PKG_SOURCE_VERSION:=4075ec2c530fb1590aa484f98ed37c9dda5216f5
PKG_SOURCE_VERSION:=1a842e0a3836f616973e6a92f0b0b6ca82ec39bb
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -52,6 +52,21 @@ ifeq ($(CONFIG_ICWMP_BACKUP_EVENTS),y)
EXTRA_CFLAGS += -DPERSIST_BACKUP_SESSION_EVENTS
endif
ifeq ($(CONFIG_ICWMP_ENABLE_VENDOR_EXTN),y)
EXTRA_CFLAGS += -DICWMP_ENABLE_VENDOR_EXTN
endif
ifeq ($(CONFIG_ICWMP_ENABLE_SMM_SUPPORT),y)
EXTRA_CFLAGS += -DICWMP_ENABLE_SMM_SUPPORT
endif
ifeq ($(CONFIG_ICWMP_VENDOR_PREFIX),"")
CMAKE_OPTIONS += -DBBF_VENDOR_PREFIX:String="$(CONFIG_BBF_VENDOR_PREFIX)"
else
CMAKE_OPTIONS += -DBBF_VENDOR_PREFIX:String="$(CONFIG_ICWMP_VENDOR_PREFIX)"
endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/icwmp/* $(PKG_BUILD_DIR)/
@@ -72,14 +87,15 @@ define Package/icwmp/install
$(INSTALL_BIN) ./files/etc/uci-defaults/85-cwmp-set-userid $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/90-cwmpfirewall $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/95-set-random-inform-time $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/85-migrate-gw-info $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/999-cwmp-conn-config $(1)/etc/uci-defaults/
$(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)
$(BBFDM_INSTALL_MS_PLUGIN) ./files/etc/bbfdm/json/CWMPManagementServer.json $(1) $(PKG_NAME) 20
endef
$(eval $(call BuildPackage,icwmp))

View File

@@ -15,7 +15,8 @@
},
{
"parent_dm": "Device.",
"object": "XMPP"
"object": "XMPP",
"proto": "cwmp"
}
],
"config": {

View File

@@ -1,6 +1,6 @@
config acs 'acs'
option userid '' #$OUI-$SER
option passwd 'iopsys'
option passwd ''
option periodic_inform_enable 'true'
option periodic_inform_interval '1800'
option periodic_inform_time '0001-01-01T00:00:00Z'
@@ -13,11 +13,15 @@ config acs 'acs'
#­ possible configs interval :[1000:65535]
option retry_interval_multiplier '2000'
option skip_dhcp_boot_options '0'
option insecure_enable '0'
option get_rpc_methods '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 possible configs: EMERG, ALERT, CRITIC ,ERROR, WARNING, NOTICE, INFO, DEBUG
@@ -25,7 +29,7 @@ config cpe 'cpe'
option log_file_name '/var/log/icwmpd.log'
option log_max_size '102400'
option userid '' #$OUI-$SER
option passwd 'iopsys'
option passwd ''
option port '7547'
option provisioning_code ''
option amd_version '5'
@@ -38,9 +42,10 @@ config cpe 'cpe'
option periodic_notify_interval '10'
option incoming_rule 'Port_Only'
option active_notif_throttle '0'
option disable_gatewayinfo '0'
option fw_upgrade_keep_settings '1'
option clock_sync_timeout '128'
option disable_datatype_check '0'
#list allowed_cr_ip '10.5.1.0/24'
config lwn 'lwn'
option enable '0'

View File

@@ -1,24 +1,59 @@
#!/bin/sh
. /lib/functions.sh
ZONE_NAME_FILE="/tmp/cwmp_fw_zone"
#created by the icwmp package
log() {
echo "${@}"|logger -t firewall.cwmp -p info
}
get_firewall_zone() {
zone="$(uci show firewall|grep network|grep -w ${1}|cut -d. -f 2)"
zone="${zone:-wan}" # defaults to wan zone
echo "$zone"
collect_zone_name() {
local name network
config_get name "${1}" name ""
if [ -z "${name}" ]; then
return
fi
config_get network "${1}" network ""
for i in ${network}; do
var="${i}_zone"
echo "${var}=${name}" >> "${ZONE_NAME_FILE}"
done
}
cleanup_exiting_rules() {
while iptables -w 1 -nL zone_"${1}"_input --line-numbers 2>/dev/null | grep "Open_ACS_port"; do
load_zone_names() {
rm -f "${ZONE_NAME_FILE}"
config_load firewall
config_foreach collect_zone_name zone
}
get_firewall_zone() {
if [ ! -f "${ZONE_NAME_FILE}" ]; then
echo ""
return
fi
var="${1}_zone="
name="$(cat ${ZONE_NAME_FILE} | grep ${var} | head -n 1 | cut -d'=' -f 2)"
echo "${name}"
}
cleanup_upstream_rules() {
if [ -z "${1}" ]; then
log "Rule can not be cleaned without zone name"
return
fi
while iptables -w 1 -nL zone_"${1}"_input --line-numbers 2>/dev/null | grep "Open_ACS_port"; do
rule_num="$(iptables -w 1 -nL zone_"${1}"_input --line-numbers | grep "Open_ACS_port" | head -1|awk '{print $1}')"
if [ -n "${rule_num}" ]; then
iptables -w 1 -D zone_"${1}"_input "${rule_num}";
fi
done
while ip6tables -w 1 -nL zone_"${1}"_input --line-numbers 2>/dev/null | grep "Open_ACS_port"; do
while ip6tables -w 1 -nL zone_"${1}"_input --line-numbers 2>/dev/null | grep "Open_ACS_port"; do
rule_num="$(ip6tables -w 1 -nL zone_"${1}"_input --line-numbers | grep "Open_ACS_port" | head -1|awk '{print $1}')"
if [ -n "${rule_num}" ]; then
ip6tables -w 1 -D zone_"${1}"_input "${rule_num}";
@@ -26,76 +61,144 @@ cleanup_exiting_rules() {
done
}
enable="$(uci -q get cwmp.cpe.enable)"
enable="${enable:-1}"
if [ "$enable" -eq 0 ]; then
log "CWMP not enabled"
exit 0;
fi
wan="$(uci -q get cwmp.cpe.default_wan_interface)"
wan="${wan:-wan}"
zone_name="$(get_firewall_zone $wan)"
port=$(uci -q get cwmp.cpe.port)
port="${port:-7547}"
incoming_rule=$(uci -q get cwmp.cpe.incoming_rule|awk '{print tolower($0)}')
incoming_rule="${incoming_rule:-port_only}"
ipaddr=$(uci -c /var/state -q get icwmp.acs.ip)
ip6addr=$(uci -c /var/state -q get icwmp.acs.ip6)
cmd="iptables -w 1 -I zone_${zone_name}_input -p tcp"
cmd6="ip6tables -w 1 -I zone_${zone_name}_input -p tcp"
# default incoming rule is Port only
if [ "${incoming_rule}" = "ip_only" ]; then
if [ -n "${ipaddr}" ]; then
cmd="${cmd} -s ${ipaddr}"
fi
if [ -n "${ip6addr}" ]; then
cmd6="${cmd6} -s ${ip6addr}"
fi
elif [ "${incoming_rule}" = "port_only" ]; then
if [ -n "${port}" ]; then
cmd="${cmd} --dport ${port}"
cmd6="${cmd6} --dport ${port}"
fi
else
if [ -n "${ipaddr}" ]; then
cmd="${cmd} -s ${ipaddr}"
cleanup_downstream_rules() {
if [ -z "${1}" ]; then
log "Rule can not be cleaned without zone name"
return
fi
if [ -n "${ip6addr}" ]; then
cmd6="${cmd6} -s ${ip6addr}"
while iptables -w 1 -nL zone_"${1}"_input --line-numbers 2>/dev/null | grep "Close_ACS_port"; do
rule_num="$(iptables -w 1 -nL zone_"${1}"_input --line-numbers | grep "Close_ACS_port" | head -1|awk '{print $1}')"
if [ -n "${rule_num}" ]; then
iptables -w 1 -D zone_"${1}"_input "${rule_num}";
fi
done
while ip6tables -w 1 -nL zone_"${1}"_input --line-numbers 2>/dev/null | grep "Close_ACS_port"; do
rule_num="$(ip6tables -w 1 -nL zone_"${1}"_input --line-numbers | grep "Close_ACS_port" | head -1|awk '{print $1}')"
if [ -n "${rule_num}" ]; then
ip6tables -w 1 -D zone_"${1}"_input "${rule_num}";
fi
done
}
close_downstream_acs_port() {
lan="${1}"
port="${2}"
zone_name="$(get_firewall_zone $lan)"
if [ -z "${zone_name}" ]; then
log "Rule can not be added without zone name"
return
fi
if [ -n "${port}" ]; then
cmd="${cmd} --dport ${port}"
cmd6="${cmd6} --dport ${port}"
fi
fi
cleanup_exiting_rules "${zone_name}"
echo "${cmd}"|grep -q "\-\-dport \|\-s "
if [ "$?" -eq 0 ]; then
cmd="${cmd} -j ACCEPT -m comment --comment=Open_ACS_port"
cmd="iptables -w 1 -I zone_${zone_name}_input -p tcp --dport ${port} -j DROP -m comment --comment=Close_ACS_port"
${cmd}
log "Applied [${cmd}]"
fi
echo "${cmd6}"|grep -q "\-\-dport \|\-s "
if [ "$?" -eq 0 ]; then
cmd6="${cmd6} -j ACCEPT -m comment --comment=Open_ACS_port"
${cmd6}
log "Applied [${cmd6}]"
fi
cmd="ip6tables -w 1 -I zone_${zone_name}_input -p tcp --dport ${port} -j DROP -m comment --comment=Close_ACS_port"
${cmd}
log "Applied [${cmd}]"
}
if [ -f "/var/state/icwmp" ]; then
uci -c /var/state -q set icwmp.cpe.firewall_restart="init"
uci -c /var/state -q commit icwmp
fi
add_firewall_rule() {
version="${1}"
ipaddr="${2}"
port="${3}"
zone_name="${4}"
cmd=""
if [ -z "${zone_name}" ]; then
log "Rule can not be added without zone name"
return
fi
if [ "${version}" = "ipv6" ]; then
cmd="ip6tables -w 1 -I zone_${zone_name}_input -p tcp"
else
cmd="iptables -w 1 -I zone_${zone_name}_input -p tcp"
fi
if [ -n "${ipaddr}" ]; then
cmd="${cmd} -s ${ipaddr}"
fi
if [ -n "${port}" ]; then
cmd="${cmd} --dport ${port}"
fi
if echo "${cmd}"|grep -q "\-\-dport \|\-s "; then
cmd="${cmd} -j ACCEPT -m comment --comment=Open_ACS_port"
${cmd}
log "Applied [${cmd}]"
fi
}
configure_connection_req_rules() {
app="${1}"
wan="$(uci -q get cwmp.cpe.default_wan_interface)"
wan="${wan:-wan}"
wan_zone_name="$(get_firewall_zone $wan)"
cleanup_upstream_rules "${wan_zone_name}"
lan="$(uci -q get cwmp.cpe.default_lan_interface)"
lan="${lan:-lan}"
if [ "${lan}" != "${wan}" ]; then
lan_zone_name="$(get_firewall_zone $lan)"
cleanup_downstream_rules "${lan_zone_name}"
fi
enable="$(uci -q get cwmp.cpe.enable)"
enable="${enable:-1}"
if [ "$enable" -eq 0 ]; then
exit 0
fi
url="$(uci -q get cwmp.acs.url)"
if [ -z "${url}" ]; then
url="$(uci -q get cwmp.acs.dhcp_url)"
fi
# no need to apply firewall rule, acs url not configured
if [ -z "${url}" ]; then
exit 0
fi
if [ -z "${app}" ]; then
if ! ubus -t 1 list tr069 2>/dev/null; then
log "cwmp client not running"
exit 0
fi
fi
port=$(uci -q get cwmp.cpe.port)
port="${port:-7547}"
ipaddr=$(uci -q get cwmp.cpe.allowed_cr_ip)
if [ -n "${ipaddr}" ]; then
for ip in $ipaddr; do
if echo "${ip}" | grep -q ":"; then
add_firewall_rule "ipv6" "${ip}" "${port}" "${wan_zone_name}"
else
add_firewall_rule "ipv4" "${ip}" "${port}" "${wan_zone_name}"
fi
done
else
# Port-only
add_firewall_rule "ipv6" "" "${port}" "${wan_zone_name}"
add_firewall_rule "ipv4" "" "${port}" "${wan_zone_name}"
fi
if [ "${lan}" != "${wan}" ]; then
# Close the ACS port at Lan side
close_downstream_acs_port "${lan}" "${port}"
fi
}
load_zone_names
configure_connection_req_rules "$@"
rm -f "${ZONE_NAME_FILE}"

View File

@@ -16,349 +16,6 @@ log() {
echo "${@}"|logger -t cwmp.init -p info
}
regenerate_ssl_link() {
local cert_dir
cert_dir="${1%/}"
if [ -f "${cert_dir}" ]; then
return 0
fi
# do not generate the c_rehash if its system default cert path
# ca-certificate package already generates c_rehash on compilation
[ ! -d "${cert_dir}" ] || [ "${cert_dir}" = "/etc/ssl/certs" ] && return 0
generate_links() {
local file_type="$1"
local files="${cert_dir}"/*."${file_type}"
for cfile in ${files}; do
if [ -f "${cfile}" ]; then
rehash="$(openssl x509 -hash -noout -in "${cfile}")"
if [ ! -f "${cert_dir}/${rehash}.0" ]; then
log "Generating c_rehash for ${cfile}=>${rehash}.0"
ln -s "${cfile}" "${cert_dir}/${rehash}.0"
fi
fi
done
}
generate_links "pem"
}
enable_dhcp_option43() {
local wan="${1}"
### Ask for DHCP Option 43 only if CWMP is enabled ###
local reqopts="$(uci -q get network."${wan}".reqopts)"
local proto="$(uci -q get network."${wan}".proto)"
local newreqopts=""
local option43_present=0
for ropt in $reqopts; do
case $ropt in
43) option43_present=1 ;;
*) ;;
esac
done
if [ ${option43_present} -eq 1 ]; then
return;
fi
newreqopts="$reqopts 43"
if [ "${proto}" = "dhcp" ]; then
uci -q set network."${wan}".reqopts="$newreqopts"
uci commit network
ubus call network reload
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)"
if [ "${proto}" = "dhcp" ]; then
vendorid="$(uci -q get network."${wan}".vendorid)"
if [ -z "${vendorid}" ]; then
uci -q set network."${wan}".vendorid="dslforum.org"
ubus call uci commit '{"config":"network"}'
elif [[ $vendorid != *"dslforum.org"* ]]; then
uci -q set network."${wan}".vendorid="${vendorid},dslforum.org"
ubus call uci commit '{"config":"network"}'
fi
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,40 +138,6 @@ validate_defaults() {
}
boot() {
local dhcp_discovery wan_interface skip_dhcp_boot_options disable_gatewayinfo
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"
if [ "${dhcp_discovery}" = "enable" ] || [ "${dhcp_discovery}" = "1" ]; then
if [ "${skip_dhcp_boot_options}" -ne 1 ]; then
# Set dhcp option 43 if not already configured
enable_dhcp_option43 "${wan_interface}"
# Set dhcp option 60
set_vendor_id "${wan_interface}"
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
regenerate_ssl_link "${ssl_capath}"
fi
# Copy backup data so that if it restart latter on, it gets the info
copy_cwmp_etc_files_to_varstate
mkdir -p /var/run/icwmpd/
@@ -545,7 +168,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

@@ -4,6 +4,10 @@
# Copy defaults by the factory to the cwmp UCI user section.
config_load cwmp
if [ -f "/lib/functions/iopsys-environment.sh" ]; then
. /lib/functions/iopsys-environment.sh
fi
# Get Manufacturer OUI.
config_get oui cpe manufacturer_oui ""
if [ -z "${oui}" ]; then
@@ -38,4 +42,14 @@ if [ -z "${enable_cwmp}" ]; then
uci -q set cwmp.cpe.enable="1"
fi
default_password="$(get_acs_password)"
config_get pass cpe passwd ""
if [ -z "${pass}" ]; then
uci -q set cwmp.cpe.passwd="${default_password:-iopsys}"
fi
config_get pass acs passwd ""
if [ -z "${pass}" ]; then
uci -q set cwmp.acs.passwd="${default_password:-iopsys}"
fi
# No need for commit here, it is done by uci_apply_defaults().

View File

@@ -0,0 +1,14 @@
#!/bin/sh
# Script to migrate gateway-info options to gateway uci
if [ ! -f "/etc/config/cwmp" ] && [ ! -f "/etc/config/gateway" ]; then
exit 0
fi
val="$(uci -q get cwmp.cpe.disable_gatewayinfo)"
if [ -n "$val" ] && [ "$val" -eq 1 ]; then
uci -q set gateway.global.enable=0
fi
uci -q set cwmp.cpe.disable_gatewayinfo=""

View File

@@ -0,0 +1,107 @@
#!/bin/sh
. /lib/functions.sh
log() {
echo "${@}"|logger -t cwmp.defaults -p info
}
set_vendor_id() {
local wan="${1}"
local proto="$(uci -q get network."${wan}".proto)"
if [ "${proto}" = "dhcp" ]; then
vendorid="$(uci -q get network."${wan}".vendorid)"
if [ -z "${vendorid}" ]; then
uci -q set network."${wan}".vendorid="dslforum.org"
elif [[ $vendorid != *"dslforum.org"* ]]; then
uci -q set network."${wan}".vendorid="${vendorid},dslforum.org"
fi
fi
}
enable_dhcp_option43() {
local wan="${1}"
local reqopts="$(uci -q get network."${wan}".reqopts)"
local proto="$(uci -q get network."${wan}".proto)"
local newreqopts=""
local option43_present=0
for ropt in $reqopts; do
case $ropt in
43) option43_present=1 ;;
*) ;;
esac
done
if [ ${option43_present} -eq 1 ]; then
return;
fi
newreqopts="$reqopts 43"
if [ "${proto}" = "dhcp" ]; then
uci -q set network."${wan}".reqopts="$newreqopts"
fi
}
regenerate_ssl_link() {
local cert_dir
cert_dir="${1%/}"
if [ -f "${cert_dir}" ]; then
return 0
fi
# do not generate the c_rehash if its system default cert path
# ca-certificate package already generates c_rehash on compilation
[ ! -d "${cert_dir}" ] || [ "${cert_dir}" = "/etc/ssl/certs" ] && return 0
generate_links() {
local file_type="$1"
local files="${cert_dir}"/*."${file_type}"
for cfile in ${files}; do
if [ -f "${cfile}" ]; then
rehash="$(openssl x509 -hash -noout -in "${cfile}")"
if [ ! -f "${cert_dir}/${rehash}.0" ]; then
log "Generating c_rehash for ${cfile}=>${rehash}.0"
ln -s "${cfile}" "${cert_dir}/${rehash}.0"
fi
fi
done
}
generate_links "pem"
}
configure_dhcp_discovery() {
local dhcp_discovery wan_interface skip_dhcp_boot_options
config_load cwmp
config_get wan_interface cpe default_wan_interface "wan"
config_get dhcp_discovery acs dhcp_discovery "0"
config_get skip_dhcp_boot_options acs skip_dhcp_boot_options "0"
if [ "${dhcp_discovery}" = "enable" ] || [ "${dhcp_discovery}" = "1" ]; then
if [ "${skip_dhcp_boot_options}" -ne 1 ]; then
# Set dhcp option 43 if not already configured
enable_dhcp_option43 "${wan_interface}"
# Set dhcp option 60
set_vendor_id "${wan_interface}"
fi
fi
}
configure_ssl_path() {
local ssl_capath
config_load cwmp
config_get ssl_capath acs ssl_capath
if [ -n "${ssl_capath}" ]; then
regenerate_ssl_link "${ssl_capath}"
fi
}
configure_dhcp_discovery
configure_ssl_path

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

@@ -1,16 +1,17 @@
#
# Copyright (C) 2020-2024 IOPSYS Software Solutions AB
# Copyright (C) 2025 Genexis Sweden AB
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905
PKG_VERSION:=8.7.0
PKG_VERSION:=8.7.33
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=e65188bb2a05cf83f50ecf2ef8042cf75abe94a0
PKG_SOURCE_VERSION:=cb5b8f76c854b89607cd1750d3a4052ecd71ac9d
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
@@ -105,6 +106,7 @@ TARGET_CFLAGS += -DHAS_UBUS
ifeq ($(CONFIG_IEEE1905_BUILD_TR181_PLUGIN),y)
TARGET_CFLAGS += -DBUILD_TR181_PLUGIN
TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(CONFIG_BBF_VENDOR_PREFIX)\\\"
endif
MAKE_FLAGS += \
@@ -114,7 +116,7 @@ MAKE_PATH:=src
define Package/ieee1905/install
$(CP) ./files/* $(1)/
$(CP) ./files/etc $(1)/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(INSTALL_DIR) $(1)/usr/sbin

View File

@@ -0,0 +1,23 @@
{
"Device.IEEE1905.AL.": {
"type": "object",
"protocols": [
"cwmp",
"usp"
],
"access": false,
"array": false,
"{BBF_VENDOR_PREFIX}LocalOnlyMode": {
"type": "boolean",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"description": "Enable or disable interfaces from ieee1905.",
"datatype": "boolean"
}
}
}

View File

@@ -12,6 +12,7 @@ config al-iface
list ifname 'br-lan'
list ifname '/eth.*'
list ifname '/wl.*'
list ifname '/ra.*'
list ifname '/wds.*'
# ap sections are auto-generated/overwritten during onboarding

View File

@@ -1,10 +1,9 @@
#!/bin/sh
. /lib/functions/system.sh
BMAC=$(db -q get hw.board.basemac)
BMAC=$(get_mac_label)
BMAC=${BMAC//:/}
BMAC=${BMAC// /}
BMAC=$(printf "%12.12X" $((0x$BMAC)))
[ "$BMAC" == "" ] && exit 1
@@ -18,5 +17,3 @@ mac=$(uci -q get ieee1905.ieee1905.macaddress)
[ "$mac" != "" ] && exit 0
uci set ieee1905.ieee1905.macaddress="$LMAC"
uci commit ieee1905

View File

@@ -0,0 +1,13 @@
#!/bin/sh
. /etc/os-release
set_val() {
uci -q get "$1" > /dev/null || uci set "${1}=${2:-${3}}"
}
set_val ieee1905.ieee1905.manufacturer "$OPENWRT_DEVICE_MANUFACTURER" IOPSYS
set_val ieee1905.ieee1905.model_name "$(cat /tmp/sysinfo/model)" 1905-SampleDev
set_val ieee1905.ieee1905.device_name "$NAME" 1905Device
exit 0

View File

@@ -4,7 +4,7 @@ PKG_NAME:=iopsys-analytics
PKG_RELEASE:=$(COMMITCOUNT)
PKG_LICENSE:=PROPRIETARY
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=00189cea0a78b7a30dbfdd363b6d8e836437d1bc
PKG_SOURCE_VERSION:=25e32ac5a860aec6e53e3449565b71595073e014
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/iopsys-analytics.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
@@ -31,8 +31,8 @@ define Package/$(PKG_NAME)
+@PACKAGE_COLLECTD_ENCRYPTED_NETWORK \
# remote syslog
DEPENDS+= \
+syslog-ng \
+@SYSLOGNG_LOGROTATE \
+@PACKAGE_syslog-ng:SYSLOGNG_LOGROTATE \
+PACKAGE_fluent-bit:logrotate \
endef
@@ -44,7 +44,13 @@ endef
Build/Compile=
define Package/$(PKG_NAME)/install
$(CP) -r $(PKG_BUILD_DIR)/files/* $(1)/
$(CP) -r $(PKG_BUILD_DIR)/files/common/* $(1)/
ifneq ($(CONFIG_PACKAGE_fluent-bit),)
$(CP) -r $(PKG_BUILD_DIR)/files/fluent-bit/* $(1)/
endif
ifneq ($(CONFIG_PACKAGE_syslog-ng),)
$(CP) -r $(PKG_BUILD_DIR)/files/syslog-ng/* $(1)/
endif
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -6,13 +6,13 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ipt-trigger
PKG_VERSION:=1.0.2
PKG_VERSION:=1.0.3
PKG_LICENSE:=GPL-2.0
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=4f3d4427403e0a9be7653c1b92907ae8ae5f21ae
PKG_SOURCE_VERSION:=ac1beae4794f99533b28db7d0e6e80f4c268a3e8
PKG_SOURCE_URL:=https://dev.iopsys.eu/network/ipt-trigger.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -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

@@ -0,0 +1,55 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=json-schema-validator
PKG_VERSION:=2.3.0
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/pboettch/json-schema-validator.git
PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_BUILD_DEPENDS:=nlohmann-json
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
CMAKE_OPTIONS += \
-DJSON_VALIDATOR_BUILD_TESTS=OFF \
-DJSON_VALIDATOR_BUILD_EXAMPLES=OFF \
-DJSON_VALIDATOR_INSTALL=ON \
-DJSON_VALIDATOR_SHARED_LIBS=OFF
define Package/json-schema-validator
SECTION:=libs
CATEGORY:=Libraries
TITLE:=JSON Schema Validator for nlohmann::json
URL:=https://github.com/pboettch/json-schema-validator
DEPENDS:=+libstdcpp +nlohmann-json
endef
define Package/json-schema-validator/description
A JSON Schema Validator for Modern C++ using nlohmann/json.
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/nlohmann
$(CP) $(PKG_BUILD_DIR)/src/nlohmann/json-schema.hpp $(1)/usr/include/nlohmann/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libnlohmann_json_schema_validator*.a $(1)/usr/lib/ 2>/dev/null || true
$(CP) $(PKG_BUILD_DIR)/libnlohmann_json_schema_validator*.so* $(1)/usr/lib/ 2>/dev/null || true
endef
define Package/json-schema-validator/install
true
endef
$(eval $(call BuildPackage,json-schema-validator))

44
jsonval/Makefile Normal file
View File

@@ -0,0 +1,44 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=jsonval
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_LICENSE:=MIT
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/jsonval
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Command-line JSON Schema Validator
DEPENDS:=+nlohmann-json +json-schema-validator +libstdcpp
endef
define Package/jsonval/description
A small CLI tool to validate JSON files against a schema using json-schema-validator and nlohmann/json.
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
cp -r ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(TARGET_CXX) \
$(TARGET_CXXFLAGS) -std=c++17 \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/nlohmann \
-L$(STAGING_DIR)/usr/lib \
$(PKG_BUILD_DIR)/main.cpp \
-o $(PKG_BUILD_DIR)/jsonval \
-lnlohmann_json_schema_validator
endef
define Package/jsonval/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/jsonval $(1)/usr/bin/
endef
$(eval $(call BuildPackage,jsonval))

64
jsonval/src/main.cpp Normal file
View File

@@ -0,0 +1,64 @@
#include <iostream>
#include <fstream>
#include <string>
#include <nlohmann/json.hpp>
#include <nlohmann/json-schema.hpp>
using nlohmann::json;
using nlohmann::json_schema::json_validator;
using namespace std;
void print_usage(const string& prog_name) {
cerr << "Usage: " << prog_name << " -s <schema.json> -j <data.json>" << endl;
}
int main(int argc, char* argv[]) {
string schema_path, data_path;
// Simple argument parsing
for (int i = 1; i < argc; ++i) {
string arg = argv[i];
if ((arg == "-s" || arg == "--schema") && i + 1 < argc) {
schema_path = argv[++i];
} else if ((arg == "-j" || arg == "--json") && i + 1 < argc) {
data_path = argv[++i];
} else {
print_usage(argv[0]);
return 1;
}
}
if (schema_path.empty() || data_path.empty()) {
print_usage(argv[0]);
return 1;
}
ifstream schema_file(schema_path);
ifstream data_file(data_path);
if (!schema_file.is_open() || !data_file.is_open()) {
cerr << "Error: Could not open one or both files." << endl;
return 2;
}
json schema, document;
try {
schema_file >> schema;
data_file >> document;
} catch (const json::parse_error& e) {
cerr << "Parse error: " << e.what() << endl;
return 3;
}
try {
json_validator validator;
validator.set_root_schema(schema);
validator.validate(document);
cout << "Valid" << endl;
} catch (const std::exception& e) {
cerr << "Validation failed: " << e.what() << endl;
return 4;
}
return 0;
}

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libdsl
PKG_VERSION:=7.2.100
PKG_VERSION:=7.3.0
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=20875ec79fcc7c546c2f1253c867d6afbc8bff75
PKG_SOURCE_URL:=https://dev.iopsys.eu/hal/libdsl.git
PKG_SOURCE_VERSION:=2a7a49fac35c3d8078ffe051594c0425d355cacd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
@@ -37,6 +37,9 @@ else ifeq ($(CONFIG_TARGET_x86),y)
else ifeq ($(CONFIG_TARGET_armvirt),y)
TARGET_PLATFORM=TEST
TARGET_CFLAGS +=-DIOPSYS_TEST
else ifeq ($(CONFIG_TARGET_airoha),y)
TARGET_PLATFORM=AIROHA
TARGET_CFLAGS +=-DIOPSYS_AIROHA
endif
TARGET_CFLAGS += \
@@ -57,7 +60,7 @@ define Package/libdsl
SUBMENU:=IOPSYS HAL libs
MENU:=1
TITLE:= xDSL library (libdsl)
DEPENDS+=TARGET_brcmbca:bcm963xx-bsp
DEPENDS+=TARGET_brcmbca:bcm963xx-bsp +TARGET_airoha:libeasy
endef
define Package/libdsl/description

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libeasy
PKG_VERSION:=7.4.5
PKG_VERSION:=7.4.6
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=67e6b91b8aca4c068a71f097f5f0576b47ec1d2e
PKG_SOURCE_VERSION:=ca7b20068c9d373e41045a2e899a9c697576262c
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/libeasy.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz

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.7
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:=3a30086a68a3409f0396acb01380f91daabf7a2f
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif

View File

@@ -0,0 +1,30 @@
#!/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}" ] && {
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
}
hasDect=$(db -q get hw.board.hasDect)
[ "$hasDect" = "1" ] || exit 0
# Set the DECT RFPI
. /lib/functions/iopsys-environment.sh
db set hw.board.dect_rfpi=$(get_dect_rfpi)
db commit
# configure the PCM for DECT/DCX81
[ -f "/proc/device-tree/aliases/dcx81-uart" ] && {
uci set dect.global.pcm_fsync='SHORT_LF'
uci set dect.global.pcm_slot_start='8'
uci set dect.global.dect_channel_start='3'
}

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libwifi
PKG_VERSION:=7.9.0
PKG_VERSION:=7.13.7
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b4d974c213eb2ad0b98165241b83bbda013ba452
PKG_SOURCE_VERSION:=65a7cd643c07e3f0a11d5b20225d4d87b8646513
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
@@ -60,11 +60,11 @@ else
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,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=logmngr
PKG_VERSION:=1.0.8
PKG_VERSION:=1.0.17
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/system/logmngr.git
PKG_SOURCE_VERSION:=7c2056c9f5dc23fd1260846c72210365ec69c882
PKG_SOURCE_VERSION:=ad2636c642d56967e78c0c84bf82cb0e2b6311f2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -28,9 +28,11 @@ define Package/logmngr
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Logging Manager
DEPENDS:=+LOGMNGR_BACKEND_FLUENTBIT:fluent-bit +LOGMNGR_LOGROTATE:logrotate
DEPENDS:=+LOGMNGR_BACKEND_FLUENTBIT:fluent-bit
DEPENDS+=+LOGMNGR_BACKEND_SYSLOG_NG:syslog-ng
DEPENDS+=+LOGMNGR_LOGROTATE:logrotate
DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service
CONFLICTS:=logd
endef
define Package/logmngr/description
@@ -52,27 +54,26 @@ define Package/logmngr/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/logmngr.init $(1)/etc/init.d/logmngr
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/10-logmngr_config_generate $(1)/etc/uci-defaults/
$(INSTALL_DIR) $(1)/lib/logmngr
ifeq ($(CONFIG_LOGMNGR_BACKEND_FLUENTBIT),y)
$(INSTALL_DATA) ./files/lib/logmngr/fluent-bit.sh $(1)/lib/logmngr/
$(INSTALL_BIN) ./files/logread $(1)/usr/sbin
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) ./files/logread $(1)/sbin/
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 10
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/
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/bbf_plugin/libbbflogrotate.so $(1) sysmngr
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/bbf_plugin/libbbflogrotate.so $(1) sysmngr 11
endif
ifeq ($(CONFIG_LOGMNGR_VENDOR_LOG_FILE),y)
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/bbf_plugin/libbbfvendorlog.so $(1) sysmngr
$(BBFDM_INSTALL_MS_PLUGIN) $(PKG_BUILD_DIR)/bbf_plugin/libbbfvendorlog.so $(1) sysmngr 12
endif
endef

View File

@@ -1,13 +1,12 @@
#!/bin/sh
if [ -s "/etc/config/logmngr" ]; then
if uci -q get logmngr.@globals[0] >/dev/null; then
# return if there is any valid content
exit
else
rm -f /etc/config/logmngr
fi
if uci -q get logmngr.@globals[0] >/dev/null; then
# return if there is any valid content
exit 0
else
rm -f /etc/config/logmngr
fi
touch /etc/config/logmngr
uci set logmngr.globals=globals
@@ -25,4 +24,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

@@ -1,14 +1,13 @@
#!/bin/sh
if [ -s "/etc/config/logmngr" ]; then
if uci -q get logmngr.@log_rotate[0] >/dev/null; then
# return if there is any valid content
exit
fi
uci set logmngr.lro1=log_rotate
uci set logmngr.lro1.enable=1
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
# Adds a default log rotate policy if none exists
if uci -q get logmngr.@log_rotate[0] >/dev/null; then
# return if there is any valid content
exit 0
fi
uci set logmngr.lro1=log_rotate
uci set logmngr.lro1.enable=1
uci set logmngr.lro1.file_name="/var/log/messages"
uci set logmngr.lro1.file_count=1
uci set logmngr.lro1.max_file_size=1000000

View File

@@ -5,11 +5,24 @@
CONF_FILE=/etc/fluent-bit/fluent-bit.conf
TMP_CONF_FILE=/tmp/fluent-bit/fluent-bit.conf
FLUENT_BIT_CONF_DIR=/etc/fluent-bit/conf.d
append_conf() {
echo "$*" >> ${TMP_CONF_FILE}
}
create_config_file() {
mkdir -p /tmp/fluent-bit
rm -f ${TMP_CONF_FILE}
touch ${TMP_CONF_FILE}
# include all files placed in FLUENT_BIT_CONF_DIR directory
# fluent-bit does not support using directory in include directive
# also, if no file is found then fluent-bit aborts
# so only add include if any file is present in the FLUENT_BIT_CONF_DIR
if [ -d "$FLUENT_BIT_CONF_DIR" ] && [ "$(ls -A "$FLUENT_BIT_CONF_DIR")" ]; then
echo "@INCLUDE ${FLUENT_BIT_CONF_DIR}/*" >> ${TMP_CONF_FILE}
fi
echo "" >> ${TMP_CONF_FILE}
}
create_service_section() {
@@ -19,11 +32,29 @@ create_service_section() {
echo " flush 1" >> ${TMP_CONF_FILE}
echo " daemon off" >> ${TMP_CONF_FILE}
echo " log_level info" >> ${TMP_CONF_FILE}
echo " coro_stack_size 24576" >> ${TMP_CONF_FILE}
echo " parsers_file /etc/fluent-bit/parsers.conf" >> ${TMP_CONF_FILE}
echo " hot_reload on" >> ${TMP_CONF_FILE}
echo "" >> ${TMP_CONF_FILE}
# Generate default input for kmsg
echo "[INPUT]" >> ${TMP_CONF_FILE}
echo " name kmsg" >> ${TMP_CONF_FILE}
echo " Tag KMSG" >> ${TMP_CONF_FILE}
echo "" >> ${TMP_CONF_FILE}
echo "[OUTPUT]" >> ${TMP_CONF_FILE}
echo " name file" >> ${TMP_CONF_FILE}
echo " match KMSG" >> ${TMP_CONF_FILE}
echo " file /var/log/messages" >> ${TMP_CONF_FILE}
echo " format template" >> ${TMP_CONF_FILE}
echo " template {syslog_ts} {hostname} kernel: {msg}" >> ${TMP_CONF_FILE}
echo "" >> ${TMP_CONF_FILE}
}
create_input_section() {
local tag="$1"
# the input in our case is always syslog, hence, this section of the
# fluent-bit.conf file has hardcoded values as well that do not depend
# on any uci value
@@ -31,6 +62,7 @@ create_input_section() {
echo " name syslog" >> ${TMP_CONF_FILE}
echo " tag $tag" >> ${TMP_CONF_FILE}
echo " path /dev/log" >> ${TMP_CONF_FILE}
echo "" >> ${TMP_CONF_FILE}
}
generate_facility_regex() {
@@ -55,7 +87,6 @@ generate_facility_regex() {
echo " regex pri $pri" >> ${TMP_CONF_FILE}
done
done
}
generate_severity_regex() {
@@ -205,7 +236,6 @@ handle_log_remote() {
return
fi
local address
config_get address $section log_ip
if [ -z "$address" ]; then
@@ -216,9 +246,17 @@ handle_log_remote() {
echo " name syslog" >> ${TMP_CONF_FILE}
echo " match $match" >> ${TMP_CONF_FILE}
echo " host $address" >> ${TMP_CONF_FILE}
append_conf " syslog_appname_key ident"
append_conf " syslog_procid_key pid"
append_conf " syslog_message_key message"
local hostname="$(uci -q get 'system.@system[0].hostname')"
if [ -n "${hostname}" ]; then
append_conf " syslog_hostname_preset ${hostname}"
fi
local proto # holds value tcp or udp
config_get proto $section proto
config_get proto ${section} proto
if [ -n "$proto" ]; then
if [ "$proto" == "tls" ]; then
echo " mode tcp" >> ${TMP_CONF_FILE}
@@ -281,41 +319,39 @@ handle_action() {
# with this and action and setup output accordingly.
config_foreach handle_log_file log_file "$tag"
config_foreach handle_log_remote log_remote "$tag"
}
handle_action_section() {
config_foreach handle_action action
}
apply_config_file() {
cp ${TMP_CONF_FILE} ${CONF_FILE}
}
PROG=/usr/sbin/fluent-bit
logmngr_init() {
create_config_file
local enabled
config_load logmngr
local enabled
config_get enabled globals enable
if [ "$enabled" == "0" ]; then
return
fi
config_get_bool enabled globals enable "1"
create_config_file
create_service_section
handle_action_section
apply_config_file
if [ -f /lib/logmngr/logrotate.sh ]; then
logrotate_init
fi
if [ "$enabled" == "0" ]; then
return
fi
procd_open_instance logmngr
procd_set_param command $PROG -c $CONF_FILE
procd_set_param file $CONF_FILE
if [ -s "${TMP_CONF_FILE}" ]; then
procd_set_param command $PROG -c ${TMP_CONF_FILE}
procd_set_param file ${TMP_CONF_FILE}
elif [ -s "${CONF_FILE}" ]; then
procd_set_param command $PROG -c ${CONF_FILE}
procd_set_param file ${CONF_FILE}
fi
procd_set_param respawn
procd_close_instance
}

View File

@@ -4,14 +4,16 @@
LOGROTATE_FILE=/etc/logrotate.conf
LOGROTATE_TMP_FILE=/tmp/logrotate/logrotate.conf
CONF_DIR=/etc/logrotate.d
create_logrotate_file() {
mkdir -p /tmp/logrotate
rm -f ${LOGROTATE_TMP_FILE}
touch ${LOGROTATE_FILE}
touch ${LOGROTATE_TMP_FILE}
echo -e "include ${CONF_DIR}" >> ${LOGROTATE_TMP_FILE}
echo -e "" >> ${LOGROTATE_TMP_FILE}
}
handle_logrotate() {
local section="$1"

View File

@@ -89,13 +89,13 @@ else
exit 0
;;
-f)
tail -f "${logfile}"
tail -F "${logfile}"
exit 0
;;
-fe)
shift
pattern="${1}"
tail -f "${logfile}" | grep -E "${pattern}"
tail -F "${logfile}" | grep -E "${pattern}"
exit 0
;;
-h|*)

View File

@@ -1,36 +0,0 @@
#
# Copyright (C) 2008-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ltq-nand
PKG_VERSION:=1.0
PKG_SOURCE:=v$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/merbanan/ltq-nand/archive/
#PKG_SOURCE_PROTO:=git
#PKG_SOURCE_URL:=https://github.com/merbanan/ltq-nand/releases/download/v$(PKG_VERSION)/
#PKG_SOURCE_URL:=https://github.com/merbanan/ltq-nand.git
#PKG_SOURCE_VERSION:=07b5b0331af6de4174dab2c02bf260ee9625452a
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/host-build.mk
define Host/Compile
$(MAKE) -C $(HOST_BUILD_DIR)
endef
define Host/Install
$(CP) \
$(HOST_BUILD_DIR)/ltq-nand \
$(STAGING_DIR_HOST)/bin/
endef
$(eval $(call HostBuild))

View File

@@ -62,5 +62,9 @@ config AGENT_CHECK_PARTIAL_WIFI_RELOAD
config DYNBHD_DYNAMICALLY_PERSIST_CONTROLLER
bool "Let dynbhd through AP-Autoconfiguration Search and DHCP Discovery determine the controller or agent role"
config AGENT_UNASSOC_STA_CONT_MONITOR
bool "Enable continuos monitoring of unassociated clients"
default n
endmenu
endif

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent
PKG_VERSION:=6.3.1.2
PKG_VERSION:=6.3.6.7
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=4547277f0637a4e7f18ff676350400efb4e37138
PKG_SOURCE_VERSION:=f611be0c05e3f4fb3d35a5a1ad51f5a4ad6406ca
PKG_MAINTAINER:=Jakob Olsson <jakob.olsson@iopsys.eu>
PKG_LICENSE:=BSD-3-Clause
@@ -115,6 +115,10 @@ ifeq ($(CONFIG_DYNBHD_DYNAMICALLY_PERSIST_CONTROLLER),y)
TARGET_CFLAGS += -DPERSIST_CONTROLLER
endif
ifeq ($(CONFIG_AGENT_UNASSOC_STA_CONT_MONITOR),y)
TARGET_CFLAGS += -DUNASSOC_STA_CONT_MONITOR
endif
MAKE_PATH:=src
define Package/map-agent/install

View File

@@ -1,15 +1,26 @@
#!/bin/sh
conn_ports_file="/var/run/multiap/map.connected.ports"
map_bh_file="/var/run/multiap/multiap.backhaul"
# Exit if AL Bridge is not configured to be a bridge device
al_bridge="$(uci -q get mapagent.agent.al_bridge)"
[ "${al_bridge:0:3}" = "br-" ] || exit 0
# Get all sections where the port appears in 'ports' list
port_bridge_sec_list="$(uci show network | grep -w $PORT | grep '\.ports' | cut -d'.' -f2)"
# Find the first section with type='bridge' and get its name
for port_bridge_sec in $port_bridge_sec_list; do
if [ "$(uci -q get network.$port_bridge_sec.type)" = "bridge" ]; then
port_bridge_name="$(uci -q get network.$port_bridge_sec.name)"
break
fi
done
# Exit if the PORT Bridge Name is empty
[ -z "$port_bridge_name" ] && exit 0
# Exit if the PORT is not member of the AL Bridge
port_bridge_sec="$(uci show network | grep -w $PORT | grep '\.ports' | cut -d'.' -f2)"
port_bridge_name="$(uci -q get network.$port_bridge_sec.name)"
[ "$port_bridge_name" = "$al_bridge" ] || exit 0
# Exit if the device is not operating in extender/repeater mode
@@ -18,30 +29,6 @@ al_brnet="${al_bridge:3}"
############## Dynamic Backhaul Daemon ##############
if [ -n "$(which dynbhd)" ]; then
pidof dynbhd >/dev/null && exit 0 # dynbhd is managing the links
if [ ! -f $conn_ports_file ]; then
mkdir -p /var/run/multiap
touch $conn_ports_file
if [ "$LINK" = "up" ]; then
touch $conn_ports_file
echo "$PORT" > $conn_ports_file
brctl delif $al_bridge $PORT
#ubus call network.interface.lan remove_device "{\"name\":\"$PORT\"}"
fi
else
if [ "$LINK" = "up" ]; then
brctl delif $al_bridge $PORT
echo "$PORT" >> $conn_ports_file
#ubus call network.interface.lan remove_device "{\"name\":\"$PORT\"}"
else
sed -i -E "/(^|:)${PORT}(:|$)/d" $conn_ports_file
#ubus call network.interface.lan add_device "{\"name\":\"$PORT\"}"
brctl addif $al_bridge $PORT
[ "$(cat $conn_ports_file | wc -c)" = "0" ] && rm -f $conn_ports_file
fi
fi
exit 0
fi
########################################################
@@ -74,6 +61,14 @@ remove_from_bridge() {
[ -n "$ifname" ] && brctl delif ${al_bridge} ${ifname}
}
get_network_id() {
local ifname=$1
[ -n "$ifname" ] || return
network_id=$(wpa_cli -i $ifname list_n|tail -n 1 | awk '{print $1}')
echo ${network_id}
}
update_bstas() {
section="$1"
action="$2"
@@ -81,14 +76,15 @@ update_bstas() {
config_get ifname "$section" ifname
config_get_bool enabled "$section" enabled 0
network_id=$(get_network_id $ifname)
if [ "$action" = "down" ]; then
wpa_cli -i "$ifname" disconnect > /dev/null 2>&1
wpa_cli -i "$ifname" disable_network 0 > /dev/null 2>&1
wpa_cli -i "$ifname" disable_network $network_id > /dev/null 2>&1
# wpa_cli -i "$ifname" save_config > /dev/null 2>&1
elif [ "$action" = "up" ]; then
[ "$enabled" -eq 0 ] && return
wpa_cli -i "$ifname" reconnect > /dev/null 2>&1
wpa_cli -i "$ifname" enable_network 0 > /dev/null 2>&1
wpa_cli -i "$ifname" enable_network $network_id > /dev/null 2>&1
# wpa_cli -i "$ifname" save_config > /dev/null 2>&1
fi
}

View File

@@ -15,7 +15,7 @@ rc="$?"
issue_discovery() {
local iface="$1"
res=$(ubus -t5 call ieee1905 buildcmdu "{\"type\":0, \"ifname\":\"${iface}\"}" > /dev/null 2>&1)
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

View File

@@ -203,7 +203,7 @@ start_service() {
procd_open_instance
create_dir
procd_set_param command "/usr/sbin/mapagent" "-d"
procd_set_param command "/usr/sbin/mapagent" "-d" "-o" "/tmp/mapagent.log" "-f"
procd_set_param respawn
# procd_set_param stdout 1
# procd_set_param stderr 1

View File

@@ -259,5 +259,6 @@ map_genconf () {
}
fi
uci -q commit mapcontroller
ubus send bbfdm.wifidmd.reload
fi
}

View File

@@ -10,6 +10,16 @@ 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_PROVISION_BRIDGE
depends on CONTROLLER_EASYMESH_VENDOR_EXT
bool "Enable vendor extension that provisions custom bridge for APs to agents, if configured"
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.2.2.1
PKG_VERSION:=6.4.0.12
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=f3d3ef332678f6417d78529323119a71ba715337
PKG_MAINTAINER:=Jakob Olsson <jakob.olsson@iopsys.eu>
PKG_SOURCE_VERSION:=ae10f447f8d83ed6b98d2b82da2dda64be2c3183
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,18 +62,41 @@ 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
ifeq ($(CONFIG_CONTROLLER_PROVISION_BRIDGE),y)
TARGET_CFLAGS += -DPROVISION_BRIDGE
endif
endif
ifeq ($(CONFIG_CONTROLLER_PROPAGATE_PROBE_REQ),y)
TARGET_CFLAGS += -DPROPAGATE_PROBE_REQ
endif
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/map-controller
$(INSTALL_DIR) $(1)/usr/include/map-controller/utils
$(CP) $(PKG_BUILD_DIR)/src/wifi_dataelements.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/cntlr_commands_impl.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/cntlr_commands.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/cntlr_apis.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/wifi_opclass.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/steer_module.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/timer.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/timer_impl.h $(1)/usr/include/map-controller
$(CP) $(PKG_BUILD_DIR)/src/utils/debug.h $(1)/usr/include/map-controller/utils
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/src/libcntlr-apis.so $(1)/usr/lib
endef
define Package/map-controller/install
$(INSTALL_DIR) $(1)/etc
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mapcontroller $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib/mapcontroller
$(CP) $(PKG_BUILD_DIR)/src/libcntlr-apis.so $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/src/plugins/steer/rcpi/rcpi.so $(1)/usr/lib/mapcontroller/rcpi.so
endef

View File

@@ -8,29 +8,25 @@ config controller 'controller'
option enable_ts '0'
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'
config channel_plan
option preclear_dfs '0'
option acs '0'
###################
# Default AP sections credentials will by updated
@@ -39,27 +35,27 @@ config sta_steering
config ap
option band '2'
option ssid '$DEVICE_MANUFACTURER-$BASEMAC_ADDR'
option encryption 'sae-mixed'
option key '$WIFI_FH_KEY'
option ssid '$WIFI_FH_2G_SSID'
option encryption '$WIFI_FH_2G_ENCRYPTION'
option key '$WIFI_FH_2G_KEY'
option vid '1'
option type 'fronthaul'
option mld_id '1'
config ap
option band '5'
option ssid '$DEVICE_MANUFACTURER-$BASEMAC_ADDR'
option encryption 'sae-mixed'
option key '$WIFI_FH_KEY'
option ssid '$WIFI_FH_5G_SSID'
option encryption '$WIFI_FH_5G_ENCRYPTION'
option key '$WIFI_FH_5G_KEY'
option vid '1'
option type 'fronthaul'
option mld_id '1'
config ap
option band '6'
option ssid '$DEVICE_MANUFACTURER-$BASEMAC_ADDR'
option encryption 'sae'
option key '$WIFI_FH_KEY'
option ssid '$WIFI_FH_6G_SSID'
option encryption '$WIFI_FH_6G_ENCRYPTION'
option key '$WIFI_FH_6G_KEY'
option vid '1'
option type 'fronthaul'
option mld_id '1'
@@ -93,8 +89,8 @@ config ap
config mld
option id '1'
option ssid '$DEVICE_MANUFACTURER-$BASEMAC_ADDR'
option key '$WIFI_FH_KEY'
option ssid '$WIFI_FH_ALL_SSID'
option key '$WIFI_FH_ALL_KEY'
# option vid '1'
option type 'fronthaul'

View File

@@ -71,7 +71,7 @@ validate_ap_section() {
'encryption:or("sae", "sae+aes", "psk2",
"psk2+aes", "sae-mixed", "sae-mixed+aes",
"none", "psk-mixed", "psk-mixed+aes",
"psk", "psk+aes")' \
"psk", "psk+aes", "wpa", "wpa2", "wpa-mixed")' \
'key:string' \
'vid:range(1,65535):1' \
'type:or("backhaul", "fronthaul", "combined")' \
@@ -172,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,18 +1,95 @@
#!/bin/sh
. /lib/functions/system.sh
. /usr/share/libubox/jshn.sh
CFG=/etc/board.json
. /etc/device_info
WIFI_BH_KEY=$(openssl rand -rand /dev/urandom -hex 64 2>/dev/null | openssl dgst -hex -sha256 | cut -d " " -f 2)
WIFI_BH_KEY=${WIFI_BH_KEY::-1}
BASEMAC_ADDR="$(fw_printenv -n ethaddr | tr -d ':' | tr 'a-z' 'A-Z')"
[ ${#BASEMAC_ADDR} -eq 12 ] || BASEMAC_ADDR="$(db -q get device.deviceinfo.BaseMACAddress | tr -d ':')"
BASEMAC_ADDR="$(get_mac_label | tr -d ':' | tr 'a-z' 'A-Z')"
WIFI_FH_KEY="$(db get hw.board.wpa_key)"
WIFI_FH_KEY="${WIFI_FH_KEY:-1234567890}"
FALLBACK_SSID="$DEVICE_MANUFACTURER-$BASEMAC_ADDR"
FALLBACK_KEY="1234567890"
FALLBACK_2G_ENCRYPTION="sae-mixed"
FALLBACK_5G_ENCRYPTION="sae-mixed"
FALLBACK_6G_ENCRYPTION="sae"
FALLBACK_ALL_ENCRYPTION="sae-mixed"
set_per_band_callback() {
local band="$2"
json_select "$band" || return
local ssid encryption key
json_get_vars ssid encryption key
case "$band" in
all|2g|5g|6g)
local band_upper="$(printf "%s" "$band" | tr 'a-z' 'A-Z')"
eval "WIFI_FH_${band_upper}_SSID=\$ssid"
eval "WIFI_FH_${band_upper}_ENCRYPTION=\$encryption"
eval "WIFI_FH_${band_upper}_KEY=\$key"
;;
esac
json_select ..
}
set_vars_from_board_json() {
json_init
json_load_file "$CFG"
if json_select wlan && json_select defaults && json_is_a ssids object; then
json_for_each_item set_per_band_callback ssids
fi
json_cleanup
}
set_in_priority() {
local destination="$1"
local alternative value
shift
for alternative in "$@"; do
eval "value=\${${alternative}}"
if [ -n "$value" ]; then
echo "Setting $destination to '$value' from \$$alternative"
eval "${destination}=\$value"
break
fi
done
}
set_missing_vars_from_fallback() {
local band what
for band in ALL 2G 5G 6G; do
for what in SSID KEY; do
set_in_priority \
WIFI_FH_${band}_${what} \
WIFI_FH_${band}_${what} \
WIFI_FH_ALL_${what} \
FALLBACK_${what}
done
# Per band fallback variables for encryption because SAE is mandatory on 6 GHz
set_in_priority \
WIFI_FH_${band}_ENCRYPTION \
WIFI_FH_${band}_ENCRYPTION \
FALLBACK_${band}_ENCRYPTION
done
}
set_vars_from_board_json
set_missing_vars_from_fallback
sed -i -e "s/\$BASEMAC_ADDR/$BASEMAC_ADDR/g" \
-e "s/\$WIFI_FH_KEY/$WIFI_FH_KEY/g" \
-e "s/\$WIFI_FH_2G_KEY/$WIFI_FH_2G_KEY/g" \
-e "s/\$WIFI_FH_5G_KEY/$WIFI_FH_5G_KEY/g" \
-e "s/\$WIFI_FH_6G_KEY/$WIFI_FH_6G_KEY/g" \
-e "s/\$WIFI_FH_ALL_KEY/$WIFI_FH_ALL_KEY/g" \
-e "s/\$WIFI_FH_2G_SSID/$WIFI_FH_2G_SSID/g" \
-e "s/\$WIFI_FH_5G_SSID/$WIFI_FH_5G_SSID/g" \
-e "s/\$WIFI_FH_6G_SSID/$WIFI_FH_6G_SSID/g" \
-e "s/\$WIFI_FH_ALL_SSID/$WIFI_FH_ALL_SSID/g" \
-e "s/\$WIFI_FH_2G_ENCRYPTION/$WIFI_FH_2G_ENCRYPTION/g" \
-e "s/\$WIFI_FH_5G_ENCRYPTION/$WIFI_FH_5G_ENCRYPTION/g" \
-e "s/\$WIFI_FH_6G_ENCRYPTION/$WIFI_FH_6G_ENCRYPTION/g" \
-e "s/\$WIFI_FH_ALL_ENCRYPTION/$WIFI_FH_ALL_ENCRYPTION/g" \
-e "s/\$WIFI_BH_KEY/$WIFI_BH_KEY/g" \
-e "s/\$DEVICE_MANUFACTURER/$DEVICE_MANUFACTURER/g" \
/etc/config/mapcontroller 2>/dev/null

View File

@@ -0,0 +1,46 @@
#!/bin/sh
. /lib/functions.sh
cfg=mapcontroller
config_load $cfg
adapt_sta_steering() {
steer_module=$(uci -q get $cfg.@sta_steering[0].steer_module)
bandsteer=$(uci -q get $cfg.@sta_steering[0].bandsteer)
enabled=$(uci -q get $cfg.@sta_steering[0].enabled)
diffsnr=$(uci -q get $cfg.@sta_steering[0].diffsnr)
stri=$(uci -q get $cfg.@sta_steering[0].steer_retry_int)
sti=$(uci -q get $cfg.@sta_steering[0].steer_int)
stdi=$(uci -q get $cfg.@sta_steering[0].steer_disable_int)
uci -q del $cfg.@sta_steering[0].enabled
uci -q del $cfg.@sta_steering[0].steer_module
uci -q del $cfg.@sta_steering[0].use_bcn_metrics
uci -q del $cfg.@sta_steering[0].use_usta_metrics
uci -q del $cfg.@sta_steering[0].bandsteer
uci -q del $cfg.@sta_steering[0].diffsnr
uci del_list $cfg.@sta_steering[0].plugins="rcpi"
uci add_list $cfg.@sta_steering[0].plugins="rcpi"
uci -q set $cfg.@sta_steering[0].plugins_enabled="1"
uci -q set $cfg.@sta_steering[0].plugins_policy="any"
# re-apply any custom legacy value(s) in 'sta-steer' section
if [ -n "${enabled}" -o -n "${bandsteer}" -o -n "${diffsnr}" -o -n "${sti}" -o -n "${stri}" -o -n "${stdi}" ]; then
# create 'rcpi' named 'sta-steer' section if there is none
[ $(uci -q get mapcontroller.rcpi) ] || uci set $cfg.rcpi=sta-steer
# set custom value(s)
[ -z "${enabled}" ] || uci -q set $cfg.rcpi.enabled="${enabled}"
[ -z "${bandsteer}" ] || uci -q set $cfg.rcpi.bandsteer="${bandsteer}"
[ -z "${diffsnr}" ] || uci -q set $cfg.rcpi.diffsnr="${diffsnr}"
[ -z "${sti}" ] || uci -q set $cfg.rcpi.steer_int="${sti}"
[ -z "${stri}" ] || uci -q set $cfg.rcpi.steer_retry_int="${stri}"
[ -z "${stdi}" ] || uci -q set $cfg.rcpi.steer_disable_int="${stdi}"
uci reorder $cfg.rcpi=2
fi
}
adapt_sta_steering

11
map-plugins/Config.in Normal file
View File

@@ -0,0 +1,11 @@
if (PACKAGE_map-plugins)
menu "Options"
config STEER_RATE_PLUGIN
bool "STA steering based on estimated throughput of target-AP"
default PACKAGE_map-plugins-steer-rate
endmenu
endif

68
map-plugins/Makefile Normal file
View File

@@ -0,0 +1,68 @@
#
# Copyright (C) 2025 Genexis Sweden AB
#
include $(TOPDIR)/rules.mk
PKG_NAME:=map-plugins
PKG_VERSION:=0.0.4
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=74bf151851112ecee731d447af016c8dc668adcf
PKG_SOURCE_URL:=https://dev.iopsys.eu/multi-ap/map-plugins.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_LICENSE:=PROPRIETARY GENEXIS
PKG_LICENSE_FILES:=LICENSE
PKG_CONFIG_DEPENDS := CONFIG_PACKAGE_mapcontroller
PKG_BUILD_DEPENDS := map-controller
include $(INCLUDE_DIR)/package.mk
include $(wildcard plugins/*.mk)
MAKE_FLAGS += \
CFLAGS="$(TARGET_CFLAGS) -Wall"
plugins := \
$(if $(CONFIG_PACKAGE_map-plugins-steer-rate),steer-rate)
ppkg:=$(patsubst plugins/%.mk,map-plugins-%,$(wildcard plugins/*.mk))
define Package/map-plugins/Default
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=Multi-AP value added services
endef
define Package/map-plugins/config
source "$(SOURCE)/Config.in"
endef
define Package/map-plugins
$(call Package/map-plugins/Default)
TITLE:=Multi-AP plugins modules
DEPENDS+=+libeasy +libwifiutils +map-controller
endef
define Package/map-plugins/description
Provides extra Multi-AP services viz. steering, channel-planning etc.
endef
define Package/map-plugins/install
:
endef
define Build/Compile
$(foreach p,$(ppkg),$(call Build/Compile/$(p),$(1)))
endef
$(eval $(call BuildPackage,map-plugins))
$(eval $(foreach p,$(ppkg),$(call BuildPackage,$(p))))

View File

@@ -0,0 +1,20 @@
define Package/map-plugins-steer-rate
$(call Package/map-plugins/Default)
TITLE:=STA steering based on estimated throughput of target-AP
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +map-controller \
+map-plugins
endef
define Package/map-plugins-steer-rate/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/mapcontroller
$(CP) $(PKG_BUILD_DIR)/steer/rate/rate.so $(1)/usr/lib/mapcontroller/rate.so
endef
define Build/Compile/map-plugins-steer-rate
$(MAKE) -C $(PKG_BUILD_DIR)/steer/rate \
CC="$(TARGET_CC)" \
CFLAGS="$(TARGET_CFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)"
endef

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