Compare commits

...

718 Commits

Author SHA1 Message Date
Arun Muthusamy
2936f538aa Bug_5569: FIx, unknown operand & argument expected warnings 2021-07-27 14:47:42 +02:00
Janusz Dziedzic
49634a0c0e kick easy-soc-libs
14.0.1

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2021-07-23 12:46:36 +00:00
vdutta
c191553de2 swmodd: Align with bbf changes 2021-07-23 16:35:26 +05:30
vdutta
04b0490017 uspd: Align with bbf changes 2021-07-23 16:23:36 +05:30
Amin Ben Ramdhane
984f5454ef bbf: 4.4.0 2021-07-23 11:13:50 +01:00
vdutta
3f60546197 bbf: 4.3.9
- Fix firewall rule time
 - Updated bbf tools
2021-07-21 18:05:47 +05:30
Grzegorz Sluja
33a8f7fe81 Update package dectmngr
Do not restart registration on timeout
2021-07-21 12:32:04 +02:00
Sukru Senli
ae1a0b0738 sulu: do not overwrite nginx config for sulu section if already exists 2021-07-16 20:19:03 +02:00
Oussama Ghorbel
04205b9ac2 iopsys_ramips: switch to CONFIG_TARGET_PER_DEVICE_ROOTFS 2021-07-16 17:00:18 +02:00
Amin Ben Ramdhane
55fd3f6241 bbf: 4.3.8 2021-07-16 14:06:24 +01:00
Jomily K Joseph
7bab39b4b2 qosmngr : Shaper rate configuration needs to be in kbps 2021-07-16 07:51:13 +00:00
Sukru Senli
095a635ac2 qosmngr: add PKG_VERSION to PKG_SOURCE 2021-07-15 20:07:47 +02:00
Amin Ben Ramdhane
f1a9452b56 bbf: 4.3.7 2021-07-15 11:40:32 +01:00
nevadita.chatterjee
cdd1f7ab75 map-topology:2.1.4 2021-07-15 15:04:58 +05:30
Rahul
f709852ae3 qosmngr: resolve vlan qos issues
In 5.04, broadcom seems to have removed the support for skbvlan extension
from the kernel, although its presence still in the userspace application
is confusing, ideally, it should be removed from the userspace application
as well. Instead of skbvlan, the vlan extension is used for configuring the
vlan qos.

Hence, the qosmngr is updated to use vlan extension instead of skbvlan.
2021-07-15 12:09:19 +05:30
Andreas Gnau
b84033c641 iop: ssh_(install_key): Unify scripts and rework
Unify the iop-subcommands install_key and ssh_install_key to one script.
In addition:

* Support new key types such as ssh-ed25519 which is supported by
  Dropbear nowadays. Also add unsupported ones to make them work
  automatically in the future.
* For the install_key command, do not re-add keys already added
* Read keys loaded into SSH Agent as well, which is useful when working
  with agent forwarding on a remote host or in a Docker container.
* For the ssh_install_key command also add keys added manually to the
  build dir.
2021-07-14 18:02:17 +02:00
Amit Kumar
aadbbda3e9 mcast: updated verion for change to remove lan_to_lan option 2021-07-14 09:33:27 +05:30
Amit Kumar
c9e6cf8428 mcast: removed lan_to_lan option 2021-07-14 03:23:39 +00:00
Amit Kumar
7265b88a70 mcast: correction for warning message in mcast restart.
removed the bcmmcastctl cli call for l2l option that is not supported.
2021-07-14 03:23:39 +00:00
vdutta
ec3128865b sulu: Added init file to publish usp endpointid 2021-07-13 20:56:56 +05:30
vdutta
78c895f23a obuspa: Remove dependency of mosquitto_pub in init 2021-07-13 20:53:46 +05:30
Janusz Dziedzic
f87742703b kick wifimngr and easy-soc-libs
Kick to newer version.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2021-07-13 10:19:45 +00:00
Grzegorz Sluja
27e2d73ae1 Update package [ endptmngr ]
Add lineId information on ubus response for get rtp_stats
Enable RTCP-XR packets in brcm connection creation
2021-07-13 11:05:29 +02:00
Jakob Olsson
3de93cf5c2 map-controller: 4.0.1 2021-07-09 15:58:56 +02:00
Jakob Olsson
4b0041f6fd map-agent: 5.0.2 2021-07-09 15:57:34 +02:00
vdutta
f020406a90 obuspa: Override default roles if present in json 2021-07-09 18:04:06 +05:30
nevadita.chatterjee
74b15fdca3 map-topology: 2.1.3 2021-07-09 15:33:37 +05:30
Jakob Olsson
e113ff5534 wfadatad: 4.0.6 2021-07-08 15:55:13 +02:00
Jakob Olsson
4e3216e405 Revert "wfadatad: 4.0.6"
This reverts commit 58c8fe5bb4.
2021-07-08 15:54:50 +02:00
Jakob Olsson
58c8fe5bb4 wfadatad: 4.0.6 2021-07-08 15:44:21 +02:00
Jakob Olsson
5cf12fea90 map-topology: 2.1.2 2021-07-08 15:42:28 +02:00
Jakob Olsson
ca74205ac1 map-controller: 3.0.13 2021-07-08 13:54:39 +02:00
Jakob Olsson
c8b670737a map-controller: 3.0.12 2021-07-08 13:04:53 +02:00
Jakob Olsson
89314cae0b ieee1905: remove '22' identifier from map header files 2021-07-08 10:43:46 +02:00
Anjan Chanda
d85d2048c0 map-agent: 5.0.1 2021-07-08 10:43:46 +02:00
Amit Kumar
426a2b89a3 urlfilter: iptable and ip6tables rules for DNS added
in FORWARD chain.
2021-07-06 12:26:56 +05:30
Amin Ben Ramdhane
1a8a95e2f6 icwmp: 7.4.1-2021-07-05 2021-07-05 13:35:14 +01:00
Amin Ben Ramdhane
cec2fe6f92 bbf: 4.3.6 2021-07-05 13:33:07 +01:00
Jakob Olsson
dba7f1f97c map-agent: 4.1.3 2021-07-05 12:59:51 +02:00
Sukru Senli
15a5c5dedf sulu: 0.2.17 2021-07-05 11:48:28 +02:00
Sukru Senli
0c20ed1c78 urlfilter: flush conntrack only if urlfilter is enabled 2021-07-05 11:35:38 +02:00
Anjan Chanda
6995815f77 ieee1905: 3.3.2 2021-07-02 16:28:59 +02:00
Rahul
eb8d678e0f periodicstats: fix memory leak
fix memory leak and other general improvements
2021-07-02 18:22:22 +05:30
Jakob Olsson
f831eb5259 map-agent: 4.1.2 2021-07-02 13:04:34 +02:00
Omar Kallel
3a19aca30f icwmp: 7.4.0-2021-07-01 2021-07-01 18:48:41 +01:00
Anjan Chanda
4a039722fc ieee1905: 3.3.1 2021-07-01 16:51:34 +02:00
Anjan Chanda
6a51fb87de ieee1905: 3.3.0 2021-07-01 15:05:56 +02:00
Jakob Olsson
6eb4364b48 map-topology: 2.1.1 2021-07-01 14:09:24 +02:00
Jakob Olsson
730335f7d2 map-agent: 4.1.1 2021-07-01 11:32:30 +02:00
Erik Karlsson
9775ac0bb4 map-agent: rework loop prevention script to use wpa_cli instead of UCI 2021-07-01 11:30:52 +02:00
Yalu Zhang
0c779bb73b Update package dectmngr
Change status for dect.base registration ubus events
2021-07-01 09:54:29 +02:00
Yalu Zhang
9d8957d853 Update package dectmngr
Add UBUS events for base registration
2021-06-30 17:27:40 +02:00
Amin Ben Ramdhane
bb9cfdf487 bbf: 4.3.5 2021-06-30 14:40:40 +01:00
vdutta
dcb6cad37d obuspa: Align with mosquitto config 2021-06-30 19:08:07 +05:30
Jakob Olsson
379d6b878b map-agent: 4.1.0 2021-06-30 13:33:14 +02:00
Jakob Olsson
1e0e15653a map-topology: 2.1.0 2021-06-30 13:12:31 +02:00
Amit Kumar
bd25c841d4 urlfilter: Updated Makefile for issue fix for ipv6 support. 2021-06-30 09:51:26 +05:30
Jakob Olsson
5a67915eec ieee1905: 3.2.1 2021-06-29 14:27:11 +02:00
Jakob Olsson
f78381e0d2 map-controller: 3.0.11 2021-06-29 14:17:12 +02:00
Jakob Olsson
c657b6cd76 map-agent: 4.0.16 2021-06-29 14:15:54 +02:00
vdutta
cdb6bed47c uspd: Updated logging 2021-06-29 10:21:02 +05:30
vdutta
fe8ac41906 swmodd: Datamodel improvements 2021-06-29 10:20:03 +05:30
vdutta
b0c0230535 obuspa: Update init script for enabled parameter 2021-06-29 10:16:28 +05:30
Jakob Olsson
36ae18c95b map-agent: 4.0.15 2021-06-28 11:25:16 +02:00
Jakob Olsson
963af3d4b5 ieee1905: remove macaddress from default ieee1905
This will be set by uci-default or default to auto
2021-06-28 10:33:26 +02:00
Sukru Senli
08825a3914 crun: version 0.20 2021-06-27 16:28:13 +02:00
vdutta
cd3c3669c3 uspd: Allow DynOperate to call dmoperate functions 2021-06-26 23:48:16 +05:30
jjoseph
8141f9d62c dslmngr: 1.1.1
Fix Device.FAST.Line.{i}.Stats. showing 0
2021-06-25 17:31:35 +02:00
Omar Kallel
2603da87a7 icwmp: 7.3.0-2021-06-25 2021-06-25 15:33:32 +01:00
vdutta
98a9ee7ba5 swmodd: Use libbbf_api to expose SoftwareModules DM 2021-06-25 17:53:33 +05:30
Amit Kumar
8dd0627a3f urlfilter: Updated Makefile for ipv6 support. 2021-06-25 17:21:19 +05:30
Amit Kumar
bf73f20997 [iopsys] [urlfilter]
ip6tables rules addition for dns,http,https packets to nfqueue.
2021-06-25 11:29:15 +00:00
Markus Gothe
ecba6c9067 Use the actual HW platform for generating QoS config.
We need to use 'brcm_fw_tool' instead of /proc/cpuinfo
to check the hardware platform. The /proc/cpuinfo API
is not stable. It only works as expected for BCM96846.
2021-06-25 11:20:19 +00:00
Jakob Olsson
2778420bcd map-agent: issue topology discovery over vlan interfaces upon port up 2021-06-25 11:17:40 +00:00
Anjan Chanda
abc2c6c233 ieee1905: 3.2.0 2021-06-25 09:12:12 +02:00
Anjan Chanda
3c96d7d3b9 easy-soc-libs: 6.2.33 2021-06-25 09:11:13 +02:00
Suru Dissanaike
a0165dcc73 SULU: updated package to 0.2.16 2021-06-24 16:16:51 +00:00
Suru Dissanaike
5ae47c1892 SULU: update package to 0.2.15 2021-06-24 16:11:07 +00:00
Amin Ben Ramdhane
882d6911d4 icwmp: 7.2.1-2021-06-24 2021-06-24 14:54:57 +01:00
Amin Ben Ramdhane
6e49e15db6 bbf: 4.3.4 2021-06-24 14:53:34 +01:00
Suru Dissanaike
c1f4516d8e SULU: update package to 0.2.14 2021-06-23 13:29:19 +00:00
Jakob Olsson
26a05cbb75 ieee1905: 3.1.1 2021-06-23 14:09:10 +02:00
nevadita.chatterjee
30baf028d7 topology: 2.0.7: add host global config 2021-06-23 12:00:56 +02:00
jjoseph
678d8ad567 Update feed [iopsys] package [dslmngr] 2021-06-23 11:43:51 +05:30
Amin Ben Ramdhane
47f5c981f7 bbf: 4.3.2 2021-06-22 15:31:09 +01:00
sverma
656f9fb27b wfadatad: modified wfadatad init script. 2021-06-22 15:30:47 +05:30
Anjan Chanda
402669463a wfadatad: 4.0.5 2021-06-21 20:40:45 +02:00
Jakob Olsson
f9b9d172ef map-agent: 4.0.14 2021-06-21 15:21:43 +02:00
Jakob Olsson
6a8445c545 map-agent: fix multiap script sync credentials 2021-06-21 15:20:53 +02:00
Yalu Zhang
92addd0ba0 Update package: dectmngr
Set the region of the DECT base station
2021-06-18 16:57:39 +02:00
Grzegorz Sluja
4f061b4b66 Update package [ endptmngr ]
Add ubus call to get RTP stats from brcm
Event enabled for voice
2021-06-18 15:58:12 +02:00
sverma
bc3991024d wfadatad: 4.0.4 2021-06-18 19:20:51 +05:30
sverma
e42b1097a1 wfadatad: 4.0.3 2021-06-18 18:21:18 +05:30
Anjan Chanda
84bd79bdd6 easy-soc-libs: 6.2.32 2021-06-18 14:49:05 +02:00
vdutta
156fd4f766 uspd: Transaction commit with restart service option 2021-06-18 16:10:53 +05:30
Anjan Chanda
3fc4b8a73e ieee1905: 3.1.0 2021-06-18 12:11:56 +02:00
Jakob Olsson
3706e0b9ef map-topology: 2.0.6 2021-06-18 12:04:34 +02:00
Jakob Olsson
5017b9155e map-controller: 3.0.10 2021-06-18 12:03:42 +02:00
Jakob Olsson
f1a24d7008 map-agent: 4.0.13 2021-06-18 12:03:32 +02:00
Omar Kallel
11efefb309 icwmp: 7.2.0-2021-06-18 2021-06-18 09:17:07 +01:00
Yalu Zhang
864c69d8ae Update package: dectmngr
Set model-id
2021-06-18 09:39:18 +02:00
sverma
66290ca8bb wfadatad: refresh dataelements in every 15 sec. 2021-06-18 12:45:58 +05:30
Anjan Chanda
3a603c64eb wifimngr: 11.2.0 2021-06-17 11:30:07 +02:00
Amin Ben Ramdhane
904cc86836 bbf: 4.3.1 2021-06-17 10:10:55 +01:00
Jakob Olsson
a6b4cccfcc map-agent: hotplug: send topology discovery on eth link up 2021-06-17 09:38:31 +02:00
Jakob Olsson
1ba929a1bc map-agent: 4.0.12 2021-06-17 09:22:16 +02:00
Sukru Senli
27db3c5545 iop: deselect iopupgrade 2021-06-16 17:48:54 +02:00
Sukru Senli
c0d178f2a5 iopupgrade: remove unused package 2021-06-16 17:43:35 +02:00
Anjan Chanda
b76cf64e03 wifimngr: 11.1.1 2021-06-16 11:43:16 +02:00
Anjan Chanda
cb0f28ef56 easy-soc-libs: 6.2.30 2021-06-16 11:38:28 +02:00
Amin Ben Ramdhane
cad2b4be1f bbf: 4.3.0 2021-06-15 23:46:22 +01:00
Yalu Zhang
1b3b27088b Update package: dectmngr
Redesign DECT UBUS events
2021-06-15 17:16:53 +02:00
Jakob Olsson
52ede67c78 map-controller: 3.0.9 2021-06-15 14:54:02 +02:00
Jakob Olsson
da710a8ea5 ieee1905: 3.0.7 2021-06-15 14:53:21 +02:00
Jakob Olsson
e0685ee791 map-agent: 4.0.11 2021-06-15 14:52:55 +02:00
Sukru Senli
77d1a1fe79 Revert "iop: deselect luci-nginx and sulu"
This reverts commit 4a088ffd1c.
2021-06-14 21:08:10 +02:00
Jonas Höglund
f8af9dc5ec Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* 573bf95 Only read the FIT header when possible to speed up reading attributes.
-------------------------------------------------------------------------------
commit 573bf9543f8dc792b6d5dc8760cb69c64f11e932
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-06-11 16:42:26 +0200

    Only read the FIT header when possible to speed up reading attributes.

Base directory -> /
 fdtextract.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 48 insertions(+), 8 deletions(-)
-------------------------------------------------------------------------------
2021-06-14 14:29:56 +02:00
Jakob Olsson
2948186053 map-agenmt: 4.0.10 2021-06-14 12:23:56 +02:00
Jakob Olsson
7750caf7f5 map-controller: 3.0.8 2021-06-14 12:23:56 +02:00
Sukru Senli
317145634e easy-soc-libs: 6.2.28 2021-06-12 12:32:36 +02:00
Jakob Olsson
a0bca11b5e wfadatad: 4.0.2 2021-06-11 16:14:35 +02:00
Amin Ben Ramdhane
b92491464e bbf: Fix Freq conversion to hexbin for ieee1905 2021-06-11 15:10:12 +01:00
Suru Dissanaike
f9e82d7b5b sulu: update package to version 0.2.13 2021-06-11 13:55:59 +00:00
Suru Dissanaike
6ce90a657e Revert "Update Makefile"
This reverts commit 00f9ef780c
2021-06-11 13:55:16 +00:00
Suru Dissanaike
00f9ef780c Update Makefile 2021-06-11 13:54:19 +00:00
Anjan Chanda
ae820c047d easy-soc-libs: 6.2.27 2021-06-11 15:47:18 +02:00
Anjan Chanda
c00060ccd6 wifimngr: 11.1.0 2021-06-11 15:46:56 +02:00
Anjan Chanda
99fe0ef701 ieee1905: 3.0.6 2021-06-11 15:28:25 +02:00
Omar Kallel
3272f6a7ca icwmp: update init file 2021-06-11 14:26:41 +01:00
Jakob Olsson
be779fb032 map-topology: 2.0.5 2021-06-11 15:14:35 +02:00
Jakob Olsson
cdaa705bf2 map-controller: 3.0.7 2021-06-11 15:14:35 +02:00
Jakob Olsson
b25640f5cd map-agent: 4.0.9 2021-06-11 15:14:35 +02:00
Amin Ben Ramdhane
3e1eb2c26a bbf: 4.2.8 2021-06-11 14:00:34 +01:00
vdutta
502a2208da obuspa: Fix DM object values and caching interval
- Adaptive caching time interval for dm objects from ubus
 - Fix minor issues in datamodel value registered from obuspa
2021-06-11 18:27:47 +05:30
Omar Kallel
f5b4997f5a icwmp: 7.1.1-2021-06-01 2021-06-11 11:26:34 +01:00
Sukru Senli
7f3363ed1b iop: update_package: if feed is given, update feeds.conf for that feed only 2021-06-11 11:06:00 +02:00
Sukru Senli
4a088ffd1c iop: deselect luci-nginx and sulu 2021-06-10 17:11:12 +02:00
Jakob Olsson
b3a24bc064 map-topology: 2.0.4 2021-06-10 16:42:15 +02:00
Yalu Zhang
b8b49c884a Update package: dectmngr
Reply an empty "software version identifier" (length=0) to SUOTA request
2021-06-10 16:27:40 +02:00
Jakob Olsson
3bbd300a6f map-agent: 4.0.8 2021-06-10 15:44:24 +02:00
Amin Ben Ramdhane
228e5d6e2c bbf: Align with ieee1905 object 2021-06-10 13:45:55 +01:00
Amin Ben Ramdhane
5073a86a81 bbf: 4.2.6 2021-06-10 10:27:47 +01:00
Jakob Olsson
09fb98d1a8 map-controller: 3.0.6 2021-06-10 11:14:35 +02:00
Jakob Olsson
c8fcae0267 map-agent: 4.0.7 2021-06-10 11:14:35 +02:00
Jakob Olsson
bb1a867ba9 ieee1905: 3.0.4 2021-06-10 11:14:35 +02:00
Sukru Senli
12f7b56d8e Revert "iop: deselect luci-nginx and sulu"
This reverts commit 9e7915e0b8.
2021-06-09 18:49:31 +02:00
Jakob Olsson
9b9b69db8f map-controller: 3.0.5 2021-06-09 15:24:24 +02:00
Jakob Olsson
bfd89fed46 map-agent: 4.0.6 2021-06-09 12:29:42 +02:00
Jakob Olsson
6b3dd5818f map-controller: 3.0.4 2021-06-09 10:15:48 +02:00
Jakob Olsson
fdd1dca318 map-controller: 3.0.3 2021-06-08 17:44:42 +02:00
Yalu Zhang
598b38c030 Updage package: dectmngr
Remove argument "base" from dect.base.1 UBUS methods
2021-06-08 17:34:12 +02:00
Jakob Olsson
3faff63044 wfadatad: 4.0.1 2021-06-08 14:14:24 +02:00
Jakob Olsson
8f7c3669b4 ieee1905: 3.0.3 2021-06-08 14:14:24 +02:00
Jakob Olsson
f719073b64 map-controller: 3.0.2 2021-06-08 14:14:24 +02:00
Jakob Olsson
38324be853 map-agent: 4.0.5 2021-06-08 14:14:24 +02:00
Yalu Zhang
eda07c2623 Update package: dectmngr
Add some handset info in the sqlite3 database
2021-06-08 14:08:31 +02:00
Jakob Olsson
8e57bbc89b map-agent: 4.0.4 2021-06-07 11:03:21 +02:00
Anjan Chanda
d96302eea4 wifimngr: 11.0.0 2021-06-05 10:55:00 +02:00
Anjan Chanda
d808393085 easy-soc-libs: 6.2.20 2021-06-05 10:44:00 +02:00
Jakob Olsson
be10424499 map-controller: 3.0.1 2021-06-04 17:39:06 +02:00
Jakob Olsson
885f7f1239 map-agent: 4.0.3 2021-06-04 17:38:14 +02:00
Jakob Olsson
3267182a19 map-agent: 4.0.2 2021-06-04 17:35:34 +02:00
Amin Ben Ramdhane
1b5c95d390 bbf: 4.2.5 2021-06-04 16:30:02 +01:00
vdutta
ab22b4c6b1 uspd: Added longjump to prevent segfaults 2021-06-04 20:03:39 +05:30
Omar Kallel
58734bc8f3 icwmp: 7.1.0-2021-06-04 2021-06-04 15:05:06 +01:00
Jakob Olsson
16a80f24ec map-agent: 4.0.1 2021-06-04 15:53:02 +02:00
Jakob Olsson
9f23a4e63c wfadatad: 4.0.0 2021-06-04 12:29:26 +02:00
Jakob Olsson
2154f7c134 map-controller: 3.0.0: version bump 2021-06-04 12:26:23 +02:00
Jakob Olsson
1327943b0d map-agent: 4.0.0 2021-06-04 12:26:11 +02:00
Jakob Olsson
3511b47856 ieee1905: 3.0.2 2021-06-04 12:25:59 +02:00
Shubham Sharma
d9ddb5f128 periodicstatsd : default global sample interval for implementing calculation mode 2021-06-04 12:32:49 +05:30
Sukru Senli
9e7915e0b8 iop: deselect luci-nginx and sulu 2021-06-03 17:34:13 +02:00
Amin Ben Ramdhane
df488dcfb4 bbf: 4.2.4 2021-06-03 12:28:41 +01:00
Sukru Senli
529cb0aeb2 iop: config: remove reference to non-existent packages 2021-06-02 19:24:20 +00:00
Yalu Zhang
5ab09d60df Update package: dectmngr
Add UBUS method "base_reset"
2021-06-02 17:41:37 +02:00
Jakob Olsson
f7121e0e84 map-agent: multiap script func to sync ieee1905 creds 2021-06-02 17:37:46 +02:00
Suru Dissanaike
9f632e96a7 sulu: added nginx conf for fileupload 2021-06-02 14:57:57 +02:00
Yalu Zhang
64d79c39bc Update package: dectmngr
Add more UBUS methods
2021-06-01 17:02:58 +02:00
Anjan Chanda
ae15ae5dd7 wfadatad: 3.3.4 2021-05-31 21:20:33 +02:00
Anjan Chanda
313fb95cdd map-topology: 2.0.3 2021-05-31 21:20:33 +02:00
Anjan Chanda
b56536c1e0 map-controller: 2.4.19 2021-05-31 20:53:24 +02:00
Anjan Chanda
5a6c51162c map-agent: 3.5.27 2021-05-31 20:51:53 +02:00
Anjan Chanda
358b411758 map-1905: remove ieee1905-meshcomm compat plugin 2021-05-31 20:46:40 +02:00
Anjan Chanda
d3dbf90646 ieee1905: 3.0.1 2021-05-31 20:43:15 +02:00
Sukru Senli
8539d6cfe8 ieee1905-meshcomm: remove old ieee1905 stack 2021-05-29 19:20:36 +02:00
Sukru Senli
7c173a7357 ieee1905: version and license correction for new the stack 2021-05-29 19:16:18 +02:00
Jakob Olsson
219d8e7557 map-agent: workaround: wait for wifi and sleep to let radios initialize 2021-05-28 18:26:26 +02:00
Jakob Olsson
10a7f18099 ieee1905: add back init.d script and fix default config 2021-05-28 17:22:58 +02:00
Jakob Olsson
da2393edec iop: deselect old ieee1905 stack, select new stack 2021-05-28 16:54:19 +02:00
Jakob Olsson
36c46c3717 wfadatad: 3.3.3 2021-05-28 16:40:43 +02:00
Jakob Olsson
6272cb32de ieee1905: install correct directory 2021-05-28 16:38:31 +02:00
Jakob Olsson
9ce26b7f23 wfadatad: remove dependency on non-existing package 2021-05-28 16:38:17 +02:00
Nevadita
15134a7247 topology: 2.0.2 2021-05-28 14:21:47 +00:00
Jakob Olsson
2de708e08b map-controller: 2.4.18 2021-05-28 16:17:56 +02:00
Jakob Olsson
38e5604fed map-agent: 3.5.25 2021-05-28 16:16:49 +02:00
Jakob Olsson
131c152165 ieee1905: 1.0.0 2021-05-28 16:14:09 +02:00
sverma
242327a978 wfadatad: 3.3.2, aligned with new ieee1905. 2021-05-28 19:13:10 +05:30
vdutta
c25e6ab28f obuspa: Updated numentry handling and docs 2021-05-28 18:21:27 +05:30
Oskar Viljasaar
fe1e1af143 taas: Remove usage of CONFIG_TARGET_NAND_BLOCKSZ
This is not used anymore.
2021-05-28 14:25:25 +02:00
Suru Dissanaike
891e294746 Update sulu/Makefile 2021-05-28 08:55:53 +00:00
Suru Dissanaike
61f2920db1 sulu:0.2.10 2021-05-27 18:37:46 +00:00
Suru Dissanaike
ca051ca489 sulu: 0.2.9 2021-05-27 15:52:56 +00:00
Jakob Olsson
afbb5646bd ieee1905: 0.3.3 2021-05-27 17:18:46 +02:00
Jakob Olsson
1647299798 map-controller: 2.4.17 2021-05-27 17:18:46 +02:00
Jakob Olsson
efbdd85054 map-agent: 3.5.24 2021-05-27 17:18:43 +02:00
Jakob Olsson
0b2f5dda9a ieee1905: 0.3.2 2021-05-27 16:30:54 +02:00
Jakob Olsson
bea9ff0f87 rename prj-unish to ieee1905 2021-05-27 16:30:54 +02:00
Jakob Olsson
9bbfeee6aa rename ieee1905 to ieee1905-mescomm 2021-05-27 16:30:54 +02:00
Jakob Olsson
8a1f53463d map-agent/cntlr: add prj-unish dependency 2021-05-27 16:30:54 +02:00
Jakob Olsson
dd41b4b573 map-controller: 2.4.16 2021-05-27 16:30:54 +02:00
Jakob Olsson
abee9b7f90 map-agent: 3.5.22 2021-05-27 16:30:54 +02:00
Jakob Olsson
7bb1e1fabe prj-unish: 0.3.1 2021-05-27 16:30:54 +02:00
Amin Ben Ramdhane
1f06ccede8 bbf: 4.2.3 2021-05-27 15:10:55 +01:00
Rahul
b111eb1246 urlfilter: Update makefile
To include urlfilter daemon improvements.
2021-05-27 19:03:50 +05:30
Rahul
c3eeb956d9 urlfilter: update makefile and fix https filtering
* make use of conntrack to flush exiting tcp connection
* update init file to
    * not accelerate https packets so that they are can be trapped
      by urlfilter daemon
    * flush connections when daemon reloaded
    * make firewall rules more secure
2021-05-27 18:53:01 +05:30
Suru Dissanaike
fdabc69dfa sulu: 0.2.8 2021-05-27 10:16:11 +00:00
vdutta
e4f56f549c obuspa: Updated system cert path 2021-05-27 13:13:54 +05:30
Amin Ben Ramdhane
debc7f9ec6 bbf: 4.2.2 2021-05-26 19:14:55 +01:00
vdutta
0c8cdd6297 uspd: ubus notifications for add/del instances 2021-05-26 21:25:00 +05:30
vdutta
6cecf882b8 obuspa: B#4770 Get is throwing erroneous messages 2021-05-26 21:20:18 +05:30
Amin Ben Ramdhane
4d12bc6833 bbf: 4.2.1 2021-05-25 15:42:59 +01:00
Amin Ben Ramdhane
2dbce56aa9 bbf: 4.2.0 2021-05-25 11:09:38 +01:00
Sukru Senli
00b1d90297 dectmngr: update version and license 2021-05-24 21:59:34 +02:00
Suru Dissanaike
63bb34d06a sulu: fix makefile 2021-05-21 18:19:04 +00:00
Suru Dissanaike
aede464e88 iop: added sulu 2021-05-21 17:17:14 +00:00
Jakob Olsson
6ab355131f map-controller: 2.4.13 2021-05-21 15:58:51 +02:00
Jakob Olsson
8564d6081e map-agent: 3.5.21 2021-05-21 15:58:44 +02:00
Suru Dissanaike
c01d17de44 sulu: 0.2.6 2021-05-21 13:54:59 +00:00
Bartlomiej Grzeskowiak
f5cdc3a3e7 iop: Add iopsys-econet en7562
./iop genconfig en7562

Signed-off-by: Bartlomiej Grzeskowiak <bartlomiej.grzeskowiak@iopsys.eu>
2021-05-21 13:19:14 +00:00
Suru Dissanaike
10b20e8fd4 sulu: package 0.2.5 2021-05-21 10:05:17 +00:00
Sukru Senli
49f3ec4cd4 iop: select periodicstats by default 2021-05-20 20:34:17 +02:00
vdutta
ae23f756ec obuspa: Align role_name with uci 2021-05-20 22:34:11 +05:30
Amin Ben Ramdhane
c7ae8699ca bbf: 4.1.9 2021-05-20 13:03:09 +01:00
Amin Ben Ramdhane
df6a493b47 bbf: 4.1.8 2021-05-19 20:16:05 +01:00
Omar Kallel
14136cd10a icwmp: 7.0.3-2021-05-19 2021-05-19 17:42:32 +01:00
vdutta
923747dc4e obuspa: Integrate OBUSPA-4.0 2021-05-19 18:18:26 +05:30
Suru Dissanaike
efb2c35438 sulu: fixed tabs issue in makefile 2021-05-19 06:12:14 +02:00
Suru Dissanaike
00887c2cfc sulu: fixed config to work with LUCI 2021-05-18 19:15:03 +00:00
Suru Dissanaike
6afb559fe3 sulu: copy files to target 2021-05-18 18:20:41 +00:00
Sukru Senli
be301272fa iop: select luci nginx instead of luci uhttpd 2021-05-18 19:06:16 +02:00
Suru Dissanaike
b2ac4d3a46 sulu: added nginx conf via uci-default script 2021-05-18 18:18:24 +02:00
Jonas Höglund
52b4f37130 Do not touch juci Makefile as it's been removed 2021-05-18 16:03:15 +02:00
Amin Ben Ramdhane
88fc0d3692 bbf: 4.1.7 2021-05-18 13:55:43 +01:00
vdutta
a9c8166acd B#5181: Fix mqtts conn with libmosquitto v2.0.10 2021-05-18 17:52:10 +05:30
Omar Kallel
8e21ad37f7 icwmp: 7.0.2-2021-05-18 2021-05-18 12:41:00 +01:00
Amin Ben Ramdhane
329458ea54 bbf: 4.1.6 2021-05-17 15:42:17 +01:00
Jakob Olsson
aa34cd098e map-controller: only parse for -w flag if mapagent config exists 2021-05-17 16:03:19 +02:00
Yalu Zhang
c2fad5fad2 Update package: dectmngr
Always put the list access database file in /tmp/LA_DB
2021-05-17 14:58:25 +02:00
Rahul
32a9117209 periodicstats: update makefile 2021-05-14 19:11:36 +05:30
Anjan Chanda
0c04b05abe easy-soc-libs: 6.2.19 2021-05-14 15:38:01 +02:00
Shubham Sharma
a8bd624873 periodicstatsd : Changes for periodic statistics.
- missing library files under /usr/lib/bbfdm
	- Added global enable for periodicstats & disabled by default
	- updated to latest devel
2021-05-14 12:45:20 +00:00
vdutta
7a3dee480e bbf: Align ra option tag with dhcp option 2021-05-14 17:46:33 +05:30
Adam Borowski
ff67433326 updated endpoint manager to support howler tone 2021-05-14 13:31:53 +02:00
Sukru Senli
c2627f0005 urlfilter: disable by default 2021-05-14 12:46:23 +02:00
vdutta
eb8152c1c5 icwmp: Align with ubus socket path 2021-05-14 13:21:26 +05:30
Sukru Senli
94f5d5b98b owsd: adapt to ubus socket default path 2021-05-13 22:17:49 +02:00
vdutta
9d5b9d46e2 xmppc: Added test and docs 2021-05-13 23:50:59 +05:30
Suru Dissanaike
de27e0408d sulu: replace nginx with uci default 2021-05-12 19:45:00 +00:00
vdutta
61321b369c obuspa: Fix service entry 2021-05-12 23:42:38 +05:30
vdutta
d5071bf28d uspd: Fix uspd service entry 2021-05-12 23:40:37 +05:30
vdutta
b87959cc61 stunc: Added stun related params
- Moved stun related datamodel parameters from bbf to stunc
- Rename/align stun uci with package
- Updated schema and docs
2021-05-12 23:37:29 +05:30
vdutta
567e6d9870 bbf: Refactor stun related parameters to stunc 2021-05-12 23:35:22 +05:30
Anjan Chanda
13ed87c4be prj-unish: 1.0.0 2021-05-12 14:53:41 +02:00
Anjan Chanda
b084d4498b wifimngr: 10.0.4 2021-05-12 14:52:28 +02:00
Anjan Chanda
14253e84ac easy-soc-libs: 6.2.18 2021-05-12 14:51:16 +02:00
Suru Dissanaike
163c543147 sulu: avoid conflict with luci 2021-05-12 12:16:23 +00:00
Sukru Senli
7af90d69ee iop: switch from juci to luci as default webui 2021-05-12 13:12:14 +02:00
Sukru Senli
4e1a1c45a0 owsd: disable by default 2021-05-12 13:11:50 +02:00
Jakob Olsson
40612ae2ef map-topology: 2.0.1 2021-05-12 12:39:30 +02:00
Suru Dissanaike
2aae4c8109 sulu: added nginx dependency 2021-05-12 11:23:57 +02:00
Suru Dissanaike
4fe198c7bf sulu: changed path of nginx.conf 2021-05-12 11:20:40 +02:00
Suru Dissanaike
f514d81709 sulu: added nginx conf for port 8080 2021-05-12 09:16:58 +00:00
Jakob Olsson
2e6ac5bb49 rulengd: 1.2.3 2021-05-12 10:42:13 +02:00
Yalu Zhang
1d06631503 Update package [ dectmngr ]
Change the design of mapping between term_id, line_id and handset number
2021-05-12 10:12:47 +02:00
Jakob Olsson
dec1cb5146 owsd: 1.1.3 2021-05-12 10:03:18 +02:00
vdutta
1b5be728d2 obuspa: Align with ubus path 2021-05-12 13:29:52 +05:30
vdutta
5915f5a7c3 uspd: Align with ubus and event support 2021-05-12 13:27:56 +05:30
Jakob Olsson
1d41fce2a3 owsd: use NULL socket by default 2021-05-12 09:26:58 +02:00
Jakob Olsson
02fa994bce map-topology: 2.0.0 2021-05-12 08:58:19 +02:00
Sukru Senli
bed1a643a5 urlfilter: add dependency to iptables-mod-nfqueue 2021-05-12 00:10:21 +02:00
Sukru Senli
c8a33d6aaf endptmngr: 0.5
give silabs driver include path explicitly
2021-05-11 23:43:55 +02:00
Amin Ben Ramdhane
6ce52f1c87 bbf: 4.1.3 2021-05-11 19:57:28 +01:00
Jakob Olsson
a74127ade7 map-topology: 1.5.23 2021-05-11 16:46:34 +02:00
Sukru Senli
3095a304be imonitor: 1.0.1
adapt to new default ubus sock path
2021-05-11 15:56:56 +02:00
Suru Dissanaike
ae26c1e9a8 sulu: update makefile for vite settings 2021-05-11 11:42:28 +00:00
Suru Dissanaike
64dbe2aac5 sulu: 0.2.3 2021-05-11 11:40:46 +00:00
Suru Dissanaike
6cad2afe3a sulu: 0.2.2 2021-05-11 10:32:53 +00:00
Yalu Zhang
501193da98 Rename etc/init.d/dect to etc/init.d/dectmngr
Also remove some files for USB DECT sound driver configuration
2021-05-11 11:15:35 +02:00
Sukru Senli
21cabf5141 endptmngr: remove copyright from init script 2021-05-11 10:59:29 +02:00
Sukru Senli
aa91b4d17e endptmngr: add init script and remove ENDPT_OPEN 2021-05-11 10:58:17 +02:00
jjoseph
119f285d84 Update feed [iopsys] package [urlfilter] 2021-05-11 10:00:52 +05:30
Suru Dissanaike
75bbf1524a sulu: update pkg_version 2021-05-10 13:41:57 +00:00
Suru Dissanaike
082bf1560d Update Makefile 2021-05-10 13:29:39 +00:00
jjoseph
fec3683f7c urlfilter : Change permission of init.d file 2021-05-10 14:18:52 +05:30
Marin Karamihalev
8a02e8dedf Update Makefile 2021-05-07 13:11:28 +00:00
Bartlomiej Grzeskowiak
1c9afee81c iopsys-mediatek: Add iopsys-mediatek (bpi_bananapi-r64)
- ./iop genconfig -c bpi_bananapi-r64
2021-05-07 11:15:39 +00:00
Sukru Senli
97e44aac0a iop: genconfig: fix juci makefile path 2021-05-06 18:43:23 +02:00
Sukru Senli
8aa7978f70 easy-soc-libs: remove intel dependency 2021-05-06 18:01:17 +02:00
Sukru Senli
8319f90d8b juci: move from juci to iopsys feed 2021-05-06 17:27:17 +02:00
Sukru Senli
989ff55cc7 bulut: move from 3rdparty to iopsys feed 2021-05-06 17:14:06 +02:00
Sukru Senli
0e8ecee541 sulu: move from 3rdparty to iopsys feed 2021-05-06 17:13:53 +02:00
Yalu Zhang
e82f77983d Update package [ dectmngr ]
Explicitly enable the encryption between the base station and handsets
2021-05-06 14:44:21 +00:00
Andreas Gnau
181b7688e8 Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* 485a38b Merge branch 'agnau-print-to-stderr' into 'master'
* bedf694 Print errors to stderr instead of stdout
-------------------------------------------------------------------------------
commit 485a38bc4eaf2a54d080b8529d5130b2955626d1
Author: Jonas Höglund <jonas.hoglund@iopsys.eu>
Date: 2021-05-05 15:06:22 +0000

    Merge branch 'agnau-print-to-stderr' into 'master'

    Print errors to stderr instead of stdout

    See merge request iopsys/fdtextract!1
Base directory -> /
 fdtextract.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
-------------------------------------------------------------------------------
commit bedf694df0eee164f3b21f3bbffaf4dc379fa002
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2021-05-05 10:16:41 +0200

    Print errors to stderr instead of stdout

Base directory -> /
 fdtextract.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
-------------------------------------------------------------------------------
2021-05-06 13:45:29 +02:00
Yalu Zhang
c8de1c1d35 Update package [ dectmngr ]
Reject SUOTA request from the base station as it may cause handset hang
2021-05-05 15:33:22 +00:00
Sukru Senli
8540d5ebbf crun: use openwrt upstream version 2021-05-05 00:16:58 +02:00
Amin Ben Ramdhane
c48cd18584 bbf: 4.1.2 2021-05-04 16:14:32 +01:00
Jakob Olsson
3ccc71658f map-controller: 2.4.12 2021-05-04 11:10:33 +02:00
Amin Ben Ramdhane
c9f0c9c92b bulkdata: fix compilation error 2021-05-04 09:14:01 +01:00
Amin Ben Ramdhane
18ff1d3965 bbf: 4.1.1 2021-05-03 19:06:44 +01:00
Andreas Gnau
d6bb313565 iop: Remove tc
The tc-utility from iproute2 is seldomly needed. In OpenWrt 21.02 there
are two variants, tc-full and tc-tiny, but since it is not needed,
remove it.
2021-05-03 16:46:58 +02:00
Jakob Olsson
13d33c03a2 map-agent: add loop detection script 2021-05-03 15:03:58 +02:00
Anjan Chanda
0a91cd5acb wfadatad: 3.3.1 2021-05-03 09:58:12 +02:00
vdutta
ad0867991f stunc: Added ci and docs 2021-04-30 20:48:56 +05:30
Andreas Gnau
18545a1fb9 iop: Remove usbreset from config
usbreset has been moved to the usbutils package, but it is not needed,
anyways. Remove it.
2021-04-30 11:35:01 +02:00
Andreas Gnau
0378afa773 iop: Remove alsa-lib from config
One of its dependencies causes issues and alsalib is not used by
anything.
2021-04-30 11:35:01 +02:00
Jakob Olsson
06b4b106e1 map-agent: 3.5.20 2021-04-30 11:33:00 +02:00
Jakob Olsson
916ecab7c9 map-agent: 3.5.19 2021-04-29 18:39:12 +02:00
Jakob Olsson
543c3da5dc map-topology: 1.5.22 2021-04-29 14:06:45 +02:00
Anjan Chanda
2bfd924868 wifimngr: 9.3.2 2021-04-28 22:00:22 +02:00
Anjan Chanda
c12bc7eee9 easy-soc-libs: 6.2.12 2021-04-28 21:59:40 +02:00
Jonas Höglund
e9c5c111c5 Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* e92fb43 Enable output of extrated file to stdout.
-------------------------------------------------------------------------------
commit e92fb432f7ec61d8cb2066dba38cf955dcd6c676
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-28 10:06:23 +0200

    Enable output of extrated file to stdout.

Base directory -> /
 fdtextract.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
-------------------------------------------------------------------------------
2021-04-28 11:14:58 +02:00
Sukru Senli
f6c3a62378 urlfilter: install default config file 2021-04-27 23:00:05 +02:00
Andreas Gnau
362fb7b238 peripheral_manager: Remove bcmkernel dependency
As Broadcom has moved to standard interfaces, peripheral_manager no
longer depends on Broadcom headers or executables.

Remove the dependency and preprocessor options.
2021-04-27 14:21:40 +02:00
Andreas Gnau
020c8f29e1 Update feed [ iopsys ] package [ peripheral_manager ]
-------------------------------------------------------------------------------
* 785166a Remove BRCM_BOARD define
* 86178d8 Remove prox_px3220 driver
* 6069bf5 Remove vox driver
* 3897735 Remove wlctl driver
* 3aadf4a CMakeLists.txt: Run cmake-format
* 636c4e1 update README for doc portal
* d055dd8 update README.md
-------------------------------------------------------------------------------
commit 785166a9861a119623556163179915727896156b
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2021-04-23 12:37:22 +0200

    Remove BRCM_BOARD define

    No drivers depend on Broadcom headers anymore, remove the BRCM_BOARD define.

    Peripheral-manager has neither a build nor a runtime dependency on the
    Broadcom SDK.

Base directory -> /
 CMakeLists.txt | 4 ----
 1 file changed, 4 deletions(-)
-------------------------------------------------------------------------------
commit 86178d8dfc51f67b3492ad603106b1fc29d6b285
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2021-04-23 12:32:39 +0200

    Remove prox_px3220 driver

    This driver is no longer used by any supported target. Remove it.

Base directory -> /
 src/button.c      |  16 -----
 src/prox_px3220.c | 193 ------------------------------------------------------
 src/prox_px3220.h |   9 ---
 src/server.c      |   6 --
 4 files changed, 224 deletions(-)
-------------------------------------------------------------------------------
commit 6069bf5aea4dbb2ebfdd912ebb2d3c95f90ba86c
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2021-04-21 20:10:06 +0200

    Remove vox driver

    This driver is no longer used by any supported target and neither is it
    built or referenced by any other file. Remove it.

Base directory -> /
 src/vox.c      | 176 --------------------------------------------------------
 src/vox_test.c | 178 ---------------------------------------------------------
 2 files changed, 354 deletions(-)
-------------------------------------------------------------------------------
commit 3897735e4b55bed66a2b4a2ffc3ee3766e502ec5
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2021-04-21 19:44:50 +0200

    Remove wlctl driver

    This driver is no longer used by any supported target. Remove it.

Base directory -> /
 CMakeLists.txt  |   2 +-
 src/server.c    |   4 --
 src/wlctl_led.c | 133 --------------------------------------------------------
 3 files changed, 1 insertion(+), 138 deletions(-)
-------------------------------------------------------------------------------
commit 3aadf4a6d69ed1db02376e7a20f751e8bbf408c5
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2021-04-21 10:49:42 +0200

    CMakeLists.txt: Run cmake-format

    Amongst consistent indendation and following best-practices such as
    lowercase function-names, this puts individual list items on a separate
    line, making diffs easier to read.

Base directory -> /
 CMakeLists.txt | 190 +++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 118 insertions(+), 72 deletions(-)
-------------------------------------------------------------------------------
commit 636c4e1568828d85def657c324c78e341edccaad
Author: Sukru Senli <sukru.senli@iopsys.eu>
Date: 2021-04-11 13:11:29 +0200

    update README for doc portal

Base directory -> /
 README.md                      | 494 ++++++++++-------------------------------
 img/peripheral-manager.png     | Bin 0 -> 60660 bytes
 img/peripheral_led_mapping.png | Bin 0 -> 25497 bytes
 3 files changed, 115 insertions(+), 379 deletions(-)
-------------------------------------------------------------------------------
commit d055dd8a4a3aa53550a1b1f9db94225fe7c0f61b
Author: Benjamin Larsson <benjamin.larsson@iopsys.eu>
Date: 2021-04-11 13:08:18 +0200

    update README.md

Base directory -> /
 README.md | 477 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 420 insertions(+), 57 deletions(-)
-------------------------------------------------------------------------------
2021-04-27 13:44:23 +02:00
Anjan Chanda
10bf43efa9 wfadatad: 3.3.0 2021-04-27 11:51:50 +02:00
Anjan Chanda
5e3a7e7af0 prj-unish: 0.7.0 2021-04-27 11:50:38 +02:00
Anjan Chanda
a76c0a433d wifimngr: 9.3.0 2021-04-27 11:47:53 +02:00
Anjan Chanda
026ccd759e easy-soc-libs: 6.2.10 2021-04-27 11:47:11 +02:00
nevadita.chatterjee
0df9c6fc36 host: Adding sighup for network change 2021-04-27 08:52:15 +00:00
Jakob Olsson
3751ae692a map-topology: 1.5.21 2021-04-27 10:50:24 +02:00
Filip Matusiak
0160f21f10 map-controller: init.d start on reload if not running 2021-04-27 08:48:10 +00:00
Jakob Olsson
52f35c0763 map-agent: 3.5.18 2021-04-27 10:44:44 +02:00
Sukru Senli
e650d27f76 urlfilter: start urlfilter only if globally enabled 2021-04-27 09:50:48 +02:00
Sukru Senli
8d6d7626b8 iop: select urlfilter by default 2021-04-27 09:35:23 +02:00
Jakob Olsson
e6c6b2c9ae rulengd: 1.2.2 2021-04-26 17:10:52 +02:00
Amin Ben Ramdhane
67693a8954 bbf: 4.1.0 2021-04-26 15:24:32 +01:00
Amin Ben Ramdhane
88ed893a07 bbf: 4.0.9 2021-04-23 11:47:10 +01:00
Amin Ben Ramdhane
fd369ac2fb bbf: 4.0.8 2021-04-22 14:50:19 +01:00
Amin Ben Ramdhane
c1bb3a5c0f bbf: 4.0.7 2021-04-22 10:25:26 +01:00
Anjan Chanda
d1d455a51d wifimngr: 9.2.3 2021-04-21 22:21:10 +02:00
Simon Tate
fe63598021 shflags: skip PKG_MIRROR_HASH check
with latest OpenWRT, the mirror hash is now checked, even if dl/ item exists. Adding skip, stops it from always downloading again.
2021-04-21 10:45:58 +00:00
Simon Tate
7853733a75 libtrace: skip PKG_MIRROR_HASH check
with latest OpenWRT, the mirror hash is now checked, even if dl/ item exists. Adding skip, stops it from always downloading again.
2021-04-21 10:45:58 +00:00
Sukru Senli
7d991d89be move bulkdata, twamp and udpechoserver to their individual repos 2021-04-20 19:19:26 +02:00
Sukru Senli
88892e5f7c move xmppc & stunc code to their individual repos 2021-04-20 18:58:47 +02:00
jjoseph
b30434d872 Update feed [iopsys] package [urlfilter] 2021-04-20 19:05:10 +05:30
Sukru Senli
9995b4a3f2 icwmp: remove CONFIG_CWMP_SCRIPTS_FULL 2021-04-16 18:45:31 +02:00
Anjan Chanda
27c515e258 wifimngr: 9.2.1 2021-04-16 16:51:52 +02:00
Marek Puzyniak
8373ffae75 easy-soc-libs: update version and hash
Signed-off-by: Marek Puzyniak <marek.puzyniak@iopsys.eu>
2021-04-16 13:39:33 +00:00
sverma
888b247706 wfadatad: HE caps support added (3.2.5). 2021-04-16 15:51:34 +05:30
Jakob Olsson
86eed4ba84 map-agent: 3.5.17 2021-04-16 10:18:23 +02:00
Grzegorz Sluja
63335fb119 Update package [ dectmngr ]
Fix dectmngr crash when caller id is empty
2021-04-16 07:44:44 +02:00
Jakob Olsson
bc3dc5c3db map-controller: 2.4.11 2021-04-15 17:30:38 +02:00
Filip Matusiak
0097bc5d89 map-controller: add external trigger logic to init.d 2021-04-15 15:17:00 +00:00
Yalu Zhang
4b04b8445f Update package [ dectmngr ]
Set RFPI value during the start up
2021-04-15 17:08:59 +02:00
Jakob Olsson
317e644e11 3.5.16 2021-04-15 17:08:34 +02:00
Yalu Zhang
1ac9c4f057 Update package [ dectmngr ]
/etc/init.d/dect: gets DECT RFPI from the board DB and passes it to dectmngr
via a command line argument.
2021-04-15 17:05:34 +02:00
Omar Kallel
35f02d2891 icwmp: 7.0.1-2021-04-15 2021-04-15 12:19:44 +01:00
Omar Kallel
067e3dc7b8 icwmp: Fix compiling error 2021-04-15 11:49:06 +01:00
Omar Kallel
3d9cfc03fb icwmp: 7.0.0-2021-04-15 2021-04-15 11:11:02 +01:00
Erik Karlsson
a6c3c54091 mcastmngr: do not overwrite configuration if snooping section exists 2021-04-15 07:57:06 +00:00
Janusz Dziedzic
dbe1a31d09 easy-soc-libs: by default use MAC80211 target
If TARGET_PLATFORM is not set, by default use
MAC80211 target.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2021-04-14 13:24:16 +00:00
Janusz Dziedzic
d5f0c80b2e update easy-soc-libs
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2021-04-14 13:21:51 +00:00
Jakob Olsson
fd60b8121c map-controller: 2.4.10 2021-04-13 15:11:00 +02:00
Jakob Olsson
0001b91c41 map-agent: 3.5.15 2021-04-13 15:10:03 +02:00
Janusz Dziedzic
733c88df8c update easy-soc-libs and wifimngr
kick to newer version

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2021-04-12 18:35:01 +00:00
Oskar Viljasaar
1d1c8a25f2 iop: select the nohup utility in the busybox config
This is related to the ubus fwbank.upgrade() work as we would
like to implement this function in an asynchronous way.
2021-04-08 15:45:29 +00:00
Jonas Höglund
c47857f950 Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* 152a2d9 Pad hash hex output
-------------------------------------------------------------------------------
commit 152a2d96fea896c1607bd5259e3076750693dd59
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-08 11:00:12 +0200

    Pad hash hex output

Base directory -> /
 fdtextract.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
2021-04-08 11:01:20 +02:00
Sukru Senli
d503d4390e iop: select gre by default 2021-04-08 10:12:52 +02:00
Anjan Chanda
15165b3066 prj-unish: 0.2.0 2021-04-07 15:03:49 +02:00
Jonas Höglund
0fe9ac1a0d Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* a15079b Update README
* 97c3897 Update README
* 31e6cc7 Don't print the algo with the hash.
* 9246b1c Get attribute from root node.
* 1d1556a Print hash algo.
* cdb7ee7 Check hash algo.
* 30d1aed Get hash of image.
* b5bb0eb Extract image to file.
* 34c12c4 Write image to file
* 03328f9 Get size and offset of image.
-------------------------------------------------------------------------------
commit a15079b20b8ded68e5f91f69b79993ef8afd52ab
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-07 09:24:33 +0200

    Update README

Base directory -> /
 README.md | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
-------------------------------------------------------------------------------
commit 97c38977f0f843b02b82c156fbffb56ebd49246c
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-07 09:23:05 +0200

    Update README

Base directory -> /
 README.md | 28 +++++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)
-------------------------------------------------------------------------------
commit 31e6cc7e7ecdc6aec29c99c7feedfb19624f3b59
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-07 09:20:01 +0200

    Don't print the algo with the hash.

Base directory -> /
 fdtextract.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit 9246b1c36f083bda292c876273465a7713a5727a
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-07 09:18:09 +0200

    Get attribute from root node.

Base directory -> /
 fdtextract.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 47 insertions(+), 7 deletions(-)
-------------------------------------------------------------------------------
commit 1d1556a5b1f5a4206bb24430562227e8727b9d88
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-06 15:05:11 +0200

    Print hash algo.

Base directory -> /
 fdtextract.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
-------------------------------------------------------------------------------
commit cdb7ee7e3365841bd944b897328cebe441083b9c
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-06 14:53:19 +0200

    Check hash algo.

Base directory -> /
 fdtextract.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 30d1aedc1643f53ea0465a096f5ed1bf6f94b876
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-06 14:32:29 +0200

    Get hash of image.

Base directory -> /
 fdtextract.c | 34 +++++++++++++++++++++++++++++++---
 1 file changed, 31 insertions(+), 3 deletions(-)
-------------------------------------------------------------------------------
commit b5bb0eb23b47298603553e4a99f7c60c59386018
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-06 13:49:28 +0200

    Extract image to file.

Base directory -> /
 fdtextract.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)
-------------------------------------------------------------------------------
commit 34c12c48bc6900b0c7d70ad95f12fc102507b816
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-06 11:47:56 +0200

    Write image to file

Base directory -> /
 fdtextract.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 03328f97927199df098cb1fe49efc842d213a7a4
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-06 11:13:28 +0200

    Get size and offset of image.

Base directory -> /
 fdtextract.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
-------------------------------------------------------------------------------
2021-04-07 09:45:24 +02:00
Amin Ben Ramdhane
99a4fe3f05 bbf: 4.0.6 2021-04-06 15:10:52 +01:00
Jonas Höglund
ca1e348b5c Rename dumpimage to fdtextract 2021-04-06 10:46:22 +02:00
Jonas Höglund
550330cb33 Update feed [ iopsys ] package [ dumpimage ]
-------------------------------------------------------------------------------
* 9ca11d5 Check input
-------------------------------------------------------------------------------
commit 9ca11d5171989c728ed80a641c0d405b5db8e96b
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-01 11:10:08 +0200

    Check input

Base directory -> /
 dumpimage.c | 5 +++++
 1 file changed, 5 insertions(+)
-------------------------------------------------------------------------------
2021-04-01 11:12:40 +02:00
Jonas Höglund
e427dd0f09 Fix spelling error 2021-04-01 11:12:06 +02:00
Jonas Höglund
2eb3c89f36 Update feed [ iopsys ] package [ dumpimage ]
-------------------------------------------------------------------------------
* b70c60b Fix compilation
-------------------------------------------------------------------------------
commit b70c60b751e22d8286028fed3c7bfbf4b576cbf0
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-01 10:52:38 +0200

    Fix compilation

Base directory -> /
 .gitignore | 8 ++++++++
 Makefile   | 8 ++++----
 2 files changed, 12 insertions(+), 4 deletions(-)
-------------------------------------------------------------------------------
2021-04-01 10:53:04 +02:00
Jonas Höglund
6408e0254c Fix dumpimage Makefile 2021-04-01 10:41:17 +02:00
Jonas Höglund
7db30978e3 Add dumpimage tool. 2021-04-01 10:36:16 +02:00
Jakob Olsson
cbc7711204 map-controller: 2.4.9 2021-03-31 17:54:40 +02:00
Amin Ben Ramdhane
263cdbc501 bbf: 4.0.5 2021-03-31 16:44:53 +01:00
Jakob Olsson
0bc5379667 ieee1905: dont log stdout to syslog 2021-03-31 17:19:02 +02:00
Jakob Olsson
f334f25b12 wfadatad: 3.2.4 2021-03-31 16:50:49 +02:00
Jakob Olsson
b54a6f9f52 map-agent: 3.1.14 2021-03-31 15:50:46 +02:00
Jakob Olsson
5eba44b51f map-controller: 2.4.8 2021-03-31 15:19:54 +02:00
Amin Ben Ramdhane
79aa793d47 TWAMP: fix the parent path of TWAMPReflector object 2021-03-31 10:01:43 +01:00
Jakob Olsson
6f40b3fe47 map-topology: 1.5.20 2021-03-31 10:49:55 +02:00
vdutta
57401ea50e obuspa: Percent encode default EndpointID 2021-03-31 13:03:05 +05:30
Jakob Olsson
469a1f3dd2 map-topology: 1.5.19 2021-03-31 08:14:05 +02:00
Jakob Olsson
ab77076213 map-topology: 1.5.18 2021-03-30 17:40:23 +02:00
Jakob Olsson
f377f135bd map-topology: 1.5.17 2021-03-30 17:24:50 +02:00
Jakob Olsson
0041b46b67 map-topology: 1.5.16 2021-03-30 16:53:17 +02:00
Amin Ben Ramdhane
bf14a2013c bbf: 4.0.4 2021-03-30 14:58:22 +01:00
Amin Ben Ramdhane
3706193d98 bbf: 4.0.3 2021-03-29 16:39:49 +01:00
Jakob Olsson
323376f6a0 map-topology: 1.5.15 2021-03-29 17:05:48 +02:00
Jakob Olsson
d09cc5cf02 map-topology: 1.5.14 2021-03-29 15:52:00 +02:00
Jakob Olsson
218faefc0f map-topology: 1.5.13 2021-03-29 14:39:32 +02:00
Amin Ben Ramdhane
d80f3147fd bbf: 4.0.2 2021-03-29 12:56:03 +01:00
Yalu Zhang
2d8c76ba58 Update package [ dectmngr ]
Change log path from /tmp to /var/log/dectmngr
2021-03-29 11:45:07 +02:00
Sukru Senli
083fd0376f questd: 5.2.2
disable network module

simulate router.network object via rpcd script to support juci clients widget
2021-03-27 09:47:30 +01:00
Sukru Senli
22e2cb491a bbf: 4.0.1 2021-03-26 18:54:25 +01:00
Jakob Olsson
3f63c60a9d map-topology: 1.5.12 2021-03-26 17:55:16 +01:00
Jakob Olsson
e9c6d5d4a4 map-topology: 1.5.11 2021-03-26 16:32:28 +01:00
Jakob Olsson
b26e80748c map-topology: 1.5.10 2021-03-26 15:55:42 +01:00
Jakob Olsson
d683c240a9 map-topology: 1.5.9 2021-03-26 15:18:51 +01:00
vdutta
defb23338a uspd: Fix vendor extn in parallel calls 2021-03-26 17:47:37 +05:30
Jakob Olsson
aabf092369 map-topology: 1.5.8 2021-03-26 10:27:59 +01:00
Sukru Senli
84b63deafa uspd: correct commit hash 2021-03-25 20:26:47 +01:00
Amin Ben Ramdhane
1ffc4255ad bbf: new vendor extension mechanism 2021-03-25 19:37:47 +01:00
Jakob Olsson
481a055d54 map-topology: 1.5.7 2021-03-25 17:43:56 +01:00
Jakob Olsson
9cd40a75d5 map-agent: 3.5.13 2021-03-25 16:42:29 +01:00
Jakob Olsson
b606d834d7 map-controller: 2.4.7 2021-03-25 15:23:45 +01:00
Jakob Olsson
f752c9fbce ieee1905: 2.1.44 2021-03-25 15:22:16 +01:00
Anjan Chanda
d7ad33b2ba iop: select package uuidgen 2021-03-25 14:19:27 +01:00
Omar Kallel
425be291f8 icwmp: 6.5.5-2021-03-25 2021-03-25 10:59:00 +01:00
Jakob Olsson
3f4e770a3f ieee1905: 2.1.43 2021-03-25 10:06:57 +01:00
Janusz Dziedzic
9b27f7c349 wifimngr: start wps on all APs
Enumerate all APs and start WPS.
Check if supplicant connected.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2021-03-24 17:07:36 +00:00
vdutta
184cb1c823 obuspa: Verify object create/delete notifications 2021-03-24 19:05:10 +05:30
vdutta
69fc6842c2 uspd: Align error message format 2021-03-24 18:04:53 +05:30
Anjan Chanda
d607931a2d wifimngr: 9.1.1 2021-03-23 20:00:10 +01:00
Anjan Chanda
5ce6004d58 easy-soc-libs: 6.1.89 2021-03-23 19:59:43 +01:00
Jonas Höglund
febe4679bc Update feed [ iopsys ] package [ peripheral_manager ]
-------------------------------------------------------------------------------
* d9c2222 Revert "If state is the same as what has already been applied, don't do"
-------------------------------------------------------------------------------
commit d9c22221f6cb414126978c92295fdcc0885e3285
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-03-23 17:24:33 +0100

    Revert "If state is the same as what has already been applied, don't do"

    This reverts commit 4763b55173a50c572ef91ae4c9889d37200a3997.

Base directory -> /
 src/gpio_led.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)
-------------------------------------------------------------------------------
2021-03-23 17:25:36 +01:00
Omar Kallel
73448b888b icwmp: 6.5.4-2021-03-23 2021-03-23 13:42:21 +01:00
Jani Juvan
31de1fdb65 Update feed [ iopsys ] package [ dslmngr ]
-------------------------------------------------------------------------------
* d17c699 Module test and docs updates to get in sync with code
* 9490d1a If stats missing from channel part of dsl stats
* c0af1a4 Added set -e to CI scripts
* 5199acf Update functional-test.sh
-------------------------------------------------------------------------------
commit d17c699c1fc9588303d6da35ac2250903bf17cd8
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2021-03-19 14:55:45 +0000

    Module test and docs updates to get in sync with code

Base directory -> /
 docs/api/atm.link.md                      |  12 +-
 docs/api/dsl.channel.md                   | 183 ++++++------
 docs/api/dsl.line.md                      | 295 ++++++++++---------
 docs/api/dsl.md                           | 457 ++++++++++++++++--------------
 docs/api/fast.line.md                     | 205 +++++++-------
 docs/api/ptm.link.md                      |   4 +-
 dslmngr.c                                 | 100 +++----
 dslmngr.h                                 |   2 +-
 dslmngr_nl.c                              |   2 +-
 gitlab-ci/functional-api-test.sh          |   5 +-
 gitlab-ci/functional-test.sh              |   3 +
 gitlab-ci/install-dependencies.sh         |   2 +-
 gitlab-ci/iopsys-supervisord.conf         |   2 +-
 schemas/ubus/dsl.line_stats.json          |  18 +-
 test/api/json/atm.link.validation.json    |   2 +-
 test/api/json/dsl.channel.validation.json |   2 +-
 test/api/json/dsl.line.validation.json    |   2 +-
 test/api/json/fast.line.validation.json   |   2 +-
 test/api/json/ptm.link.validation.json    |   2 +-
 test/cmocka/Makefile                      |   2 +-
 test/cmocka/functional_test_dslmngr.c     |  20 +-
 test/cmocka/unit_test_dslmngr.c           |   6 +-
 test/cmocka/utils.c                       |  11 +-
 test/files/etc/config/dsl                 |   7 +
 24 files changed, 709 insertions(+), 637 deletions(-)
-------------------------------------------------------------------------------
commit 9490d1ab5f1718dae2bec26fc6a47dd8ea625623
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2021-03-17 17:31:30 +0100

    If stats missing from channel part of dsl stats

Base directory -> /
 dslmngr.c | 3 +++
 1 file changed, 3 insertions(+)
-------------------------------------------------------------------------------
commit c0af1a40adac40d5b27eae15dc49601302365e83
Author: Suru Dissanaike <suru.dissanaike@iopsys.eu>
Date: 2021-03-15 15:01:21 +0000

    Added set -e to CI scripts

Base directory -> /
 gitlab-ci/functional-api-test.sh | 2 +-
 gitlab-ci/unit-test.sh           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit 5199acfd0c9bbb2c5c27c82664ad1ffe53915831
Author: Suru Dissanaike <suru.dissanaike@iopsys.eu>
Date: 2021-03-15 14:57:09 +0000

    Update functional-test.sh

Base directory -> /
 gitlab-ci/functional-test.sh | 1 +
 1 file changed, 1 insertion(+)
-------------------------------------------------------------------------------
2021-03-19 16:01:39 +01:00
Jakob Olsson
7a04489b26 map-controller: 2.4.6 2021-03-19 15:14:30 +01:00
Jakob Olsson
9f6a17e38a map-agent: 3.5.12 2021-03-19 15:13:39 +01:00
Anjan Chanda
b2b6f4a4b1 wfadatad: 3.2.3 2021-03-19 14:27:24 +01:00
Amin Ben Ramdhane
6eabe4170f bbf: 3.7.9 2021-03-19 12:25:06 +01:00
Jakob Olsson
5e8a9b461a map-agent: 3.5.11 2021-03-19 11:11:09 +01:00
Anjan Chanda
55b5312443 easy-soc-libs: 6.1.84 2021-03-19 09:45:50 +01:00
Jakob Olsson
214ded2ce8 map-controler: 2.4.5 2021-03-18 23:46:19 +01:00
Jakob Olsson
28177ccd12 map-agent: 3.5.10 2021-03-18 23:45:27 +01:00
vdutta
9f08eb3ba0 obuspa: Multiple fixes
- Test improvements
 - Fix notification for object create/delete
 - Optimize get time for non-grouped objects
2021-03-18 20:04:56 +05:30
Jakob Olsson
497c700d1b Revert "map-topology: 1.5.7"
This reverts commit 6fdd2ba9ad.
2021-03-18 14:42:14 +01:00
Jakob Olsson
5159e04508 ieee1905: 2.1.42 2021-03-18 09:53:33 +01:00
Jakob Olsson
d034408de9 map-1905: 0.0.19 2021-03-18 08:56:15 +01:00
Jakob Olsson
d953dadccc map-controller: 2.4.4 2021-03-17 17:12:02 +01:00
Jakob Olsson
49b466b8ef map-agent: 3.5.9 2021-03-17 17:06:08 +01:00
Amin Ben Ramdhane
3ca52b35ad bbf: 3.7.8 2021-03-17 11:02:09 +01:00
Raphael Derensy
051826305e owsd: hotplug: map aliases against interface on ifup 2021-03-17 09:48:22 +01:00
Anjan Chanda
7f3e3d9c3e wfadatad: 3.2.1 2021-03-16 20:25:39 +01:00
Anjan Chanda
4790d3b915 easy-soc-libs: 6.1.78 2021-03-16 15:51:53 +01:00
Jakob Olsson
69c430e502 ieee1905: 2.1.41 2021-03-16 11:56:54 +01:00
Andreas Gnau
e5db655422 inbd: Update version number 2021-03-15 11:02:20 +01:00
Andreas Gnau
d2b9140468 treewide: Add PKG_MIRROR_HASH:=skip to pkgs downloaded from git
OpenWrt 21.02 will redownload from git over and over if PKG_MIRROR_HASH
is not set. Set it to skip to prevent it from happening.
2021-03-15 10:57:13 +01:00
Andreas Gnau
7a7097facc inbd: Make compatible with newer json-c version 2021-03-15 10:57:13 +01:00
Amin Ben Ramdhane
cec3913238 icwmp: cleanup 2021-03-14 00:28:48 +01:00
Anjan Chanda
722cca0d26 wfadatad: 3.2.0 2021-03-13 13:04:33 +01:00
Sukru Senli
0c418c8d4e wifimngr: add wps overlap state to rule engine 2021-03-12 19:32:52 +01:00
Janusz Dziedzic
9038766677 Update package [easy-soc-libs, wifimngr] 2021-03-12 17:30:15 +01:00
vdutta
5b0a9699f0 obuspa: Fix access type for grouped multi-instance objects 2021-03-12 20:46:33 +05:30
vdutta
1732abca49 uspd: Change intra process ipc to mmap 2021-03-12 20:41:50 +05:30
Yalu Zhang
5bbda10e68 Update package [ dectmngr ]
Some improvement that the remote party can hear DECT handset clearly. But there
is still big noise from handset side.
2021-03-12 13:56:16 +01:00
Nevadita
6fdd2ba9ad map-topology: 1.5.7 2021-03-12 12:01:38 +00:00
Omar Kallel
e0ba35300f icwmp: 6.5.2-2021-03-11 2021-03-11 13:03:30 +01:00
Filip Matusiak
c354891742 easy-soc-libs: flag for enabling ctrl iface socket 2021-03-10 20:04:55 +01:00
Filip Matusiak
e86b12fcbd Revert "libwpa: Add new package"
This reverts commit c558d65793.
2021-03-10 19:24:45 +01:00
Filip Matusiak
cee10ef824 Revert "libwpa: build only libwpa_client.so"
This reverts commit af0bedc16c.
2021-03-10 19:24:29 +01:00
Filip Matusiak
aab3799f3f Revert "easy-soc-libs: add libwpa_client dependency"
This reverts commit b84c1e6775.
2021-03-10 19:24:20 +01:00
Amin Ben Ramdhane
0c9e81565e bbf: 3.7.6 2021-03-09 17:23:10 +01:00
Filip Matusiak
af0bedc16c libwpa: build only libwpa_client.so 2021-03-09 14:36:51 +01:00
Filip Matusiak
b84c1e6775 easy-soc-libs: add libwpa_client dependency 2021-03-09 14:36:51 +01:00
Filip Matusiak
c558d65793 libwpa: Add new package 2021-03-09 14:36:51 +01:00
Omar Kallel
eaed835d1c icwmp: 6.5.1-2021-03-09 2021-03-09 11:52:18 +01:00
Rahul
1ad4d6b0fb Update makefile [ easy-soc-libs ] library [ libethernet ]
To include change for supporting br-lan counter stats
2021-03-09 14:20:15 +05:30
Jakob Olsson
4378f26209 map-1905: 0.0.18 2021-03-09 08:58:29 +01:00
Yalu Zhang
df7f1090b3 Update package [ dectmngr ]
Synchronise the event process between the host and base station during
the start up.
2021-03-08 14:47:57 +01:00
Omar Kallel
0b3bd71b0c icwmp: 6.5.0-2021-03-05 2021-03-05 16:43:27 +01:00
Anjan Chanda
fa397d90a3 wifimngr: 9.0.1 2021-03-05 15:50:55 +01:00
Anjan Chanda
94d061bb74 easy-soc-libs: 6.1.70 2021-03-05 15:50:26 +01:00
Amin Ben Ramdhane
365f071e9c bbf: 3.7.5 2021-03-05 15:07:44 +01:00
Jani Juvan
e17db02d67 Update feed [ iopsys ] package [ dslmngr ]
-------------------------------------------------------------------------------
* b547594 If stats bugfix on fast
* a5bb606 If stats now always presented, even if device missing
-------------------------------------------------------------------------------
commit b5475949442eedcb2781d3c71ea5aacfcce19f34
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2021-03-05 13:58:46 +0100

    If stats bugfix on fast

Base directory -> /
 dslmngr.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
-------------------------------------------------------------------------------
commit a5bb6062f5de80422f8c7078d6b90c4643eb147e
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2021-03-05 12:56:00 +0100

    If stats now always presented, even if device missing

Base directory -> /
 dslmngr.c | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)
-------------------------------------------------------------------------------
2021-03-05 14:09:51 +01:00
vdutta
4a6420b5b4 obuspa: Fix dm thread freeze issue 2021-03-05 18:19:19 +05:30
Jani Juvan
55b85a5fe0 Update feed [ iopsys ] package [ dslmngr ]
-------------------------------------------------------------------------------
* a5bb606 If stats now always presented, even if device missing
-------------------------------------------------------------------------------
commit a5bb6062f5de80422f8c7078d6b90c4643eb147e
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2021-03-05 12:56:00 +0100

    If stats now always presented, even if device missing

Base directory -> /
 dslmngr.c | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)
-------------------------------------------------------------------------------
2021-03-05 12:58:07 +01:00
Yalu Zhang
419eaf87a5 Update package [ dectmngr ]
Make term_id always 1 for all outgoing calls
Set codec between base sation and handset to PCM_LINEAR_NB
2021-03-05 12:18:30 +01:00
Jakob Olsson
f7b842b06a map-controller: 2.4.3 2021-03-05 11:32:26 +01:00
Jakob Olsson
b5dd7861ca map-agent: 3.5.8 2021-03-05 10:10:44 +01:00
Jakob Olsson
680a39cbea map-agent: 3.5.7 2021-03-04 22:51:47 +01:00
Jakob Olsson
5495066a88 map-1905: 0.0.17 2021-03-04 18:18:40 +01:00
Jakob Olsson
796063ea6d ieee1905: 2.1.40 2021-03-04 18:17:07 +01:00
Jakob Olsson
ad7ca90872 map-agent: 3.5.6 2021-03-04 18:16:34 +01:00
Yalu Zhang
563024c9a5 Update package dectmngr
Always ring all active handsets for an incoming call
2021-03-04 16:08:23 +01:00
Jani Juvan
0a8e0ffdec Update feed [ iopsys ] package [ dslmngr ]
-------------------------------------------------------------------------------
* a825f26 If stats
-------------------------------------------------------------------------------
commit a825f26a46318d95e3580054108fb5082a8a59f9
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2021-03-04 08:11:20 +0000

    If stats

Base directory -> /
 Makefile  |   2 +-
 dslmngr.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 105 insertions(+), 1 deletion(-)
-------------------------------------------------------------------------------
2021-03-04 10:35:57 +01:00
Omar Kallel
755c0d3a3a icwmp: 6.4.8-2021-03-03 2021-03-03 16:58:30 +01:00
vdutta
7c4bd1e415 obuspa: Fix get with empty referenced paths 2021-03-03 17:55:58 +05:30
vdutta
5fff31c8b1 obuspa: build with CONFIG_OPENSSL_NO_DEPRECATED 2021-03-03 16:27:08 +05:30
vdutta
518adb78bc obuspa: Wait for dependent service to start 2021-03-02 16:29:45 +05:30
Anjan Chanda
a5ea97e248 wifimngr: 9.0.0 2021-03-01 21:44:56 +01:00
Anjan Chanda
ba111ca23a easy-soc-libs: 6.1.66 2021-03-01 21:44:11 +01:00
Raphael Derensy
9066a3b852 rulengd: 1.2.1 2021-03-01 16:41:34 +01:00
Amin Ben Ramdhane
da9c130053 bbf: 3.7.4 2021-03-01 15:05:37 +01:00
Sukru Senli
e68b0bdd29 topologyd: remove deprecated package 2021-03-01 13:10:49 +01:00
Jakob Olsson
62afe68988 easy-soc-libs: 6.1.61 2021-03-01 10:19:06 +01:00
Raphael Derensy
32c1ac029d rulengd: 1.2.1 2021-03-01 10:07:11 +01:00
Jakob Olsson
1c26adf945 map-agent: 3.5.5 2021-02-26 16:39:03 +01:00
Jani Juvan
ad1e36bd51 dslmngr: add dependency to libeasy 2021-02-26 15:05:20 +01:00
vdutta
5877112f5e obuspa: Add reference follow in search queries 2021-02-26 15:32:35 +05:30
Anjan Chanda
6e1f635f40 easy-soc-libs: 6.1.60 2021-02-26 07:55:01 +01:00
Sukru Senli
b468a999b9 iop: deselect unused libraries 2021-02-25 20:34:38 +01:00
Anjan Chanda
a845c00b61 easy-soc-libs: 6.1.59 2021-02-25 16:35:44 +01:00
Jakob Olsson
e4f14cde2a map-agent: 3.5.4 2021-02-25 13:35:38 +01:00
Jakob Olsson
9c1d0111c0 map-agent: 3.5.3 2021-02-25 11:57:16 +01:00
Jakob Olsson
51e2dc8996 map-controller: 2.4.2 2021-02-25 11:56:05 +01:00
Jakob Olsson
1583a152a3 map-controller: update init.d script reload trigger 2021-02-25 10:57:32 +01:00
Amin Ben Ramdhane
4b48ec0049 bbf: 3.7.3 2021-02-25 09:30:15 +01:00
vdutta
d10066a1cf obuspa: Optimize time for get of complete dm 2021-02-23 15:42:14 +05:30
Jakob Olsson
93d6848507 ieee1905: 2.1.39 2021-02-23 09:02:18 +01:00
Sukru Senli
c108347db8 netmode: move internet led handling from testnet to ruleng 2021-02-22 22:44:47 +01:00
Anjan Chanda
2619b78b80 easy-soc-libs: 6.1.50 2021-02-22 18:33:24 +01:00
Yalu Zhang
df6f24731e Update package dectmngr
Adjust handset starting number from 2 to 1
2021-02-21 22:00:02 +01:00
Yalu Zhang
9f7bf5d3e0 Update package dectmngr
Configure the number of TDM time slots correctly
2021-02-21 21:16:39 +01:00
Erik Karlsson
06665246e5 Stop all services before unmounting filesystems
K99umount has been moved to K90umount as of OpenWrt 19.07, to make
room for init scripts that may need to run after umount. We need to
stop all services before unmounting the filesystems. The stop()
function is dead code when procd is being used and can be removed.
2021-02-20 15:55:39 +00:00
Sukru Senli
2f51c4fc69 wifimngr: use ruleng for WPS LED handling instead of script 2021-02-20 14:01:49 +01:00
Sukru Senli
262e346eb4 bbf: 3.7.2 2021-02-19 20:31:50 +01:00
vdutta
6eeb07a738 obuspa: Revert duplicate search keys to optimize time 2021-02-19 22:13:16 +05:30
Amin Ben Ramdhane
cda2c6f628 bbf: 3.7.1 2021-02-19 17:42:41 +01:00
Anjan Chanda
89cd93fa45 easy-soc-libs: 6.1.47 2021-02-19 17:30:33 +01:00
Anjan Chanda
1d7f102b55 wfadatad: 3.1.1 2021-02-19 17:23:30 +01:00
Amin Ben Ramdhane
d7dd7e3645 bbf: 3.7.0 2021-02-19 16:49:28 +01:00
Jakob Olsson
ecc67fa3a5 map-agent: 3.5.2 2021-02-19 15:19:18 +01:00
Jakob Olsson
bf06ef8bd4 map-controller: 2.4.1 2021-02-19 14:43:33 +01:00
Jakob Olsson
8271b3b9b8 map-agent: 3.5.1 2021-02-19 14:43:01 +01:00
Jonas Höglund
1bdab0bf97 Update feed [ iopsys ] package [ peripheral_manager ]
-------------------------------------------------------------------------------
* 4763b55 If state is the same as what has already been applied, don't do anything.
* 27b0656 sk9822: Add brightness capability
* 44a458c Add advanced LED indicators for button-press
-------------------------------------------------------------------------------
commit 4763b55173a50c572ef91ae4c9889d37200a3997
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-02-19 13:15:03 +0100

    If state is the same as what has already been applied, don't do anything.

    This is a workaround for a bug in the Broadcom CLED driver which causes
    flickering of LED:s when brightness is repeatedly set.

Base directory -> /
 src/gpio_led.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 27b06566339f22ec0fdc3c71bb9e45c7b22cad86
Author: Markus Gothe <markus.gothe@genexis.eu>
Date: 2021-01-29 10:38:07 +0100

    sk9822: Add brightness capability

    When using the sk9822 interface we can set the brightness via an updated
    kernel module.

    This commit adds support for using the updated API.

Base directory -> /
 src/gpio_led.c | 35 ++++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 44a458c77543da8f7b97cc5e7c11fa16b986831e
Author: Markus Gothe <markus.gothe@genexis.eu>
Date: 2021-01-29 10:42:27 +0100

    Add advanced LED indicators for button-press

    On some products it's necessary to disable the button indicators for certain
    buttons or only enable a short-press indicator when the long-press event
    occurs.

    This commit adds a third state to solve this as well as options to disable
    the press indicators for a specific button.

Base directory -> /
 src/button.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
2021-02-19 13:22:39 +01:00
Jakob Olsson
a0c094b5a1 map-controller: 2.4.0 2021-02-19 12:27:04 +01:00
Jakob Olsson
defab5f8a1 map-agent: 3.5.0 2021-02-19 12:26:29 +01:00
Jakob Olsson
7894d505e4 map-agent: 3.4.7 2021-02-18 18:01:07 +01:00
Jakob Olsson
a7785b1a2d map-controller: update default cfg 2021-02-18 17:42:05 +01:00
Jakob Olsson
ac7dd3ea14 map-agent: 3.4.6 2021-02-18 17:03:43 +01:00
Jakob Olsson
a58a2a95f2 rulengd: libeasy dependency 2021-02-18 14:02:27 +01:00
Jakob Olsson
2e26726bce map-agent: 3.4.5 2021-02-18 13:54:25 +01:00
Raphael Derensy
b46d737152 rulengd: 1.2.0 2021-02-18 13:15:10 +01:00
Jakob Olsson
f78010b8b3 map-agent: 3.4.4 2021-02-18 12:31:35 +01:00
Jakob Olsson
88524fdbc9 map-controller: 2.3.2 2021-02-17 17:29:02 +01:00
Jakob Olsson
1a399a9332 map-agent: 3.4.3 2021-02-17 17:28:28 +01:00
Anjan Chanda
533614b4f4 easy-soc-libs: 6.1.42 2021-02-17 13:04:27 +01:00
Omar Kallel
ada468f63b bbf: 3.6.8 2021-02-16 18:47:57 +01:00
Yalu Zhang
f4dd679f2e dectmngr: disable dectmngr temporarily for the FXS issues
This is a temporary workaround for https://project.iopsys.eu/issues/4141, i.e. DTMF events
can not be detected and silent egress RTP payload for incoming calls.

The latest working version is SMARTHUB3-GFAST-IOPSYS-6.1.0ALPHA0-210112_0249. The problem
starts with SMARTHUB3-GFAST-IOPSYS-6.1.0ALPHA0-210113_0331. Note that this was just a test
result on one SmartHub3 device. It may vary on other devices.

Between these two nightly build versions, there were some dectmngr changes. Simply stopping
dectmngr process by "service dect stop" may cause the bug disappears. Copy dectmngr from the
second firmware to the first one, then the problem happens too.

So it seems that changes in dectmngr causes the FXS issues. Further investigation in dectmngr
will be undertaken.
2021-02-16 16:58:02 +01:00
Anjan Chanda
b9ecd3513d easy-soc-libs: 6.1.40 2021-02-16 15:39:07 +01:00
vdutta
6e1c57dc91 obuspa: Use local mqtt credential for endpointid publish 2021-02-16 19:28:22 +05:30
Vivek Kumar Dutta
f54729e36e Revert "obuspa: Use local mqtt credential for endpointid publish"
This reverts commit afae7a9d3f
2021-02-16 13:56:23 +00:00
vdutta
afae7a9d3f obuspa: Use local mqtt credential for endpointid publish 2021-02-16 19:24:03 +05:30
Anjan Chanda
61ebc2c3a3 wifimngr: 8.5.9 2021-02-16 13:19:19 +01:00
Rahul
4f820cd74c qosmngr: fix bug #4389 on devel
More generic fix to extract port index from port itself.
2021-02-16 15:30:28 +05:30
Rahul
a8e48ca428 qosmngr: fix 4323 on devel
Although no devel panther or FT is not supported as yet but that
might be the case in near future so keeping it same here plus,
bs alias should be replaced with proper bdmf_shell command anyway
so this is done here as well. No regression, no harm.
2021-02-16 13:29:06 +05:30
Jakob Olsson
a92b3c004c map-agent: update default config 2021-02-16 08:47:27 +01:00
Jakob Olsson
b5bb871de5 map-controller: update default config 2021-02-16 08:45:57 +01:00
Amin Ben Ramdhane
c22b03a510 bbf: 3.6.7 2021-02-15 21:25:42 +01:00
Amin Ben Ramdhane
a828ecbd14 BulkData: Align with latest bbf changes 2021-02-15 21:24:30 +01:00
Amin Ben Ramdhane
272f77e46d XMPP: Align with latest bbf changes 2021-02-15 21:24:16 +01:00
Amin Ben Ramdhane
eab05e10a5 TWAMP: Align with latest bbf changes 2021-02-15 21:24:01 +01:00
Amin Ben Ramdhane
08adc4f106 UDPEchoServer: Align with latest bbf changes 2021-02-15 21:23:46 +01:00
Omar Kallel
8a4397b82e icwmp: 6.4.8-2021-02-15 2021-02-15 17:01:12 +01:00
Erik Karlsson
00952364da peripheral_manager: Wait for 'buttons' object
Object was misspelled as 'button' leading to a 2 s delay every boot.
2021-02-15 11:37:24 +00:00
Sukru Senli
cbc988c360 iop: config: select at package 2021-02-14 14:19:00 +01:00
Anjan Chanda
13f34d166e wifimngr: 8.5.8 2021-02-13 13:15:33 +01:00
Anjan Chanda
16a1b5b361 easy-soc-libs: 6.1.38 2021-02-13 13:15:08 +01:00
Omar Kallel
c25f70efc4 icwmp: 6.4.7-2021-02-12 2021-02-12 21:10:08 +01:00
Amin Ben Ramdhane
47dbd02ab4 bbf: 3.6.6 2021-02-12 18:04:44 +01:00
Jakob Olsson
64d5f38931 ieee1905: 2.1.38 2021-02-12 10:10:32 +01:00
Sukru Senli
298a8e8c78 crun: initial port: v0.17
This is a crude port of crun tailored towards Linux kernel 4.19 and disabling 5.4 Linux kernel features

A proper integration should create selectable sub config options
2021-02-11 19:58:47 +01:00
Amin Ben Ramdhane
f8e68aa249 bbf: 3.6.5 2021-02-11 19:27:04 +01:00
Sukru Senli
72de25fb65 iop: deselect rsync 2021-02-11 19:20:39 +01:00
Amin Ben Ramdhane
e38d07407f bbf: add support for all operstate mappings related to Status parameter 2021-02-11 18:37:46 +01:00
Amin Ben Ramdhane
5418076f88 bbf: 3.6.3 2021-02-11 16:23:06 +01:00
Amin Ben Ramdhane
29af99d53e bbf: 3.6.2 2021-02-11 14:17:55 +01:00
Amin Ben Ramdhane
ad0dfafa9e bbf: 3.6.1 2021-02-10 17:39:46 +01:00
vdutta
16df43ccdc obuspa: Fix duplicate unique key search param error 2021-02-10 17:47:18 +05:30
Amin Ben Ramdhane
3e07e3cd0d bbf: Correct UCI mapping for NAT.PortMapping object 2021-02-09 21:56:47 +01:00
Amin Ben Ramdhane
c6be1e0c6b bbf: 3.5.9 2021-02-09 15:55:50 +01:00
Jakob Olsson
606e8e4518 map-agent: 3.4.2 2021-02-09 12:25:12 +01:00
Jakob Olsson
4aaf074694 map-controller: 2.3.1 2021-02-09 12:24:33 +01:00
Sukru Senli
b3716a9f42 iop: generate rootfs tar file 2021-02-09 11:05:34 +01:00
Omar Kallel
bfdb9eda4f icwmp: 6.4.6-2021-02-09 2021-02-09 10:12:35 +01:00
Amin Ben Ramdhane
3a92a09f66 bbf: 3.5.8 2021-02-08 22:54:59 +01:00
Omar Kallel
78a07d7719 icwmp: 6.4.5-2021-02-08 2021-02-08 19:06:10 +01:00
Omar Kallel
255d5ea39e icwmp: 6.4.4-2021-01-08 2021-02-08 16:23:55 +01:00
Amin Ben Ramdhane
d50a164af7 bbf: 3.5.7 2021-02-06 22:28:01 +01:00
Erik Karlsson
5d6c215f23 port-management: Fix failing uci-defaults script
Remove leftover debug printout that was causing uci-defaults script to
fail at first boot due populate_config() returning non-zero.
2021-02-06 10:08:44 +00:00
Jakob Olsson
4de73e9cb0 map-agent: 3.4.1 2021-02-05 11:25:23 +01:00
Amin Ben Ramdhane
bfee02596a bbf: 3.5.6 2021-02-04 22:33:00 +01:00
Jakob Olsson
f52a5fb870 map-controller: add libeasy dependency 2021-02-04 17:21:56 +01:00
Jakob Olsson
4ec5d4ca03 map-agent: add libeasy dependency 2021-02-04 17:21:41 +01:00
Jakob Olsson
fbdfe7493a map-agent: 3.4.0 2021-02-04 16:54:14 +01:00
Jakob Olsson
495dec638a map-controller: 2.3.0 2021-02-04 16:50:28 +01:00
Jakob Olsson
32e44b7b5e map-agent: 3.3.1 2021-02-04 13:53:35 +01:00
Jakob Olsson
21d30f18a7 map-controller: 2.2.2 2021-02-04 13:51:23 +01:00
Jakob Olsson
2617f831a2 ieee1905: 2.1.37 2021-02-04 13:47:17 +01:00
vdutta
130d8c243e obuspa: Publish agent endpointid in local broker 2021-02-04 15:00:28 +05:30
Amin Ben Ramdhane
e4494f9958 bbf: 3.5.5 2021-02-03 21:33:03 +01:00
Jakob Olsson
40228bda04 map-controller: 2.2.1 2021-02-03 13:56:20 +01:00
Anjan Chanda
27e0257e6a wifimngr: 8.5.5 2021-02-02 21:07:47 +01:00
Anjan Chanda
4e812c4e18 easy-soc-libs: 6.1.20 2021-02-02 21:07:10 +01:00
Jakob Olsson
1d6b8e3271 ieee1905: 2.1.36 2021-02-02 16:42:12 +01:00
Amin Ben Ramdhane
8f718e80fd bbf: 3.5.4 2021-02-02 15:08:32 +01:00
Jakob Olsson
6baa72c846 map-agent: 3.3.0 2021-02-02 14:16:54 +01:00
Jakob Olsson
779c964b3f map-controller: 2.2.0 2021-02-02 14:16:05 +01:00
Amin Ben Ramdhane
d120f2e63d bbf: fix a crash in Bridging object 2021-02-01 19:59:18 +01:00
Amin Ben Ramdhane
bc2e7077ec bbf: 3.5.2 2021-02-01 16:00:16 +01:00
Anjan Chanda
924eb2e39c wifimngr: 8.5.3 2021-02-01 15:57:43 +01:00
Anjan Chanda
64ce9b009f easy-soc-libs: 6.1.18 2021-01-29 20:35:44 +01:00
Sukru Senli
50c6a07027 icwmp: remove notify command from init script 2021-01-29 20:20:34 +01:00
Markus Gothe
ac02982008 RM#27829 - RMON statistics not received on request
Everytime we change the target we need to make sure
that easy-soc-libs are rebuilt since different
targets have different definitions of the
structs.

Change-Id: Id973dea4ddb5ffe4e48837650fff56dc67292b8d
2021-01-28 19:33:02 +00:00
jjoseph
69c9f88730 Update package ethmngr : source version 2021-01-28 23:28:56 +05:30
Markus Gothe
cb5c1979e6 gryphon-led-module: add get/set brightness
To be able to dim the LED from user-space
we need to export an API. This is done
like we currently do for setting the color,
a file which handles hexadecimal numbers.

Change-Id: I4636d16e24cdae38ccd6b501e41f71ce7012dbad
2021-01-28 17:05:53 +00:00
Amin Ben Ramdhane
20d31ec7c6 bbf: 3.5.1 2021-01-28 16:54:22 +01:00
Anjan Chanda
f5b8fbb033 easy-soc-libs: 6.1.15 2021-01-28 13:36:56 +01:00
Yalu Zhang
5e01100d14 Update package dectmngr
Handle events CMBS_EV_DSR_TARGET_UP and CMBS_EV_DSR_RECONNECT_REQ properly
2021-01-27 18:33:02 +01:00
vdutta
748e2500f6 obuspa: Reload when schema update available 2021-01-27 19:39:16 +05:30
Yalu Zhang
dc5001c949 Update package dectmngr
Add the callback function for event CMBS_EV_DSR_CORD_CLOSEREG
2021-01-27 14:57:39 +01:00
vdutta
b84fb8e456 uspd: Notify schema updates on usp.raw object 2021-01-27 19:12:28 +05:30
Yalu Zhang
6bbf691df1 Update package dectmngr: disable checksum 2021-01-27 12:18:16 +01:00
jjoseph
ff6fcd8438 Updating package source version 2021-01-27 14:00:49 +05:30
Amin Ben Ramdhane
d454e5eb38 bbf: 3.5.0 2021-01-26 19:03:07 +01:00
Yalu Zhang
9cfeee53e9 Update package dectmngr
Also improve /etc/init.d/dect for service stop
2021-01-26 11:03:20 +01:00
Amin Ben Ramdhane
2b8c0a26ae bbf: 3.4.9 2021-01-25 19:39:18 +01:00
Janusz Dziedzic
d752678875 easy-soc-libs: install qos.h file 2021-01-25 17:02:37 +01:00
Janusz Dziedzic
6df6762cd7 easy-soc-libs: use brcm sdk headers 2021-01-25 13:09:23 +01:00
Anjan Chanda
40d4f72784 easy-soc-libs: refactor package Makefiles 2021-01-25 11:56:59 +01:00
Amin Ben Ramdhane
b7cd1f15f9 bbf: wifi: add support for WPA3 security modes 2021-01-25 09:57:07 +01:00
vdutta
ff2ae72bd2 obuspa: Improve refresh instances logic 2021-01-24 20:22:57 +05:30
Jakob Olsson
93180ac277 easy-soc-libs: 6.1.14 2021-01-22 19:32:34 +01:00
Jakob Olsson
84831d3d95 map-agent: 3.2.3 2021-01-22 17:56:42 +01:00
Jakob Olsson
09de34b98a map-agent: 3.2.2 2021-01-22 14:56:44 +01:00
Sukru Senli
7da60b67cc bbf: 3.4.7
add Device.Firewall.Chain.{i}.Rule.{i}.Log parameter support
2021-01-22 13:51:33 +01:00
Jakob Olsson
ce5541aef8 map-controller: init.d: don't start if enabled is explicitly set to 0 2021-01-22 11:27:01 +01:00
Jakob Olsson
4b564df4c0 map-agent: init.d: don't start if enabled is explicitly set to 0 2021-01-22 11:26:38 +01:00
Amin Ben Ramdhane
5e6580ccf2 bbf: 3.4.6 2021-01-21 21:32:48 +01:00
Anjan Chanda
15a055ffdd ethmngr: 2.0.1 2021-01-21 17:04:09 +01:00
Jakob Olsson
e68fac5e9b map-agent: 3.2.1 2021-01-21 16:33:21 +01:00
Jakob Olsson
df82765a3b map-controller: 2.1.0 2021-01-21 16:16:21 +01:00
Jakob Olsson
f9070e4c3f map-agent: 3.2.0 2021-01-21 14:17:16 +01:00
Anjan Chanda
9d94b7d594 wifimngr: 8.5.2 2021-01-21 12:06:43 +01:00
Anjan Chanda
d1ed021a04 easy-soc-libs: 6.1.13 2021-01-21 12:05:26 +01:00
Sukru Senli
9987882a1c inbd: 1.2.1 2021-01-21 11:12:47 +01:00
Amin Ben Ramdhane
83b6fb7330 bbf: fix crash when adding a static route 2021-01-20 22:00:53 +01:00
Amin Ben Ramdhane
8c3d54ff7d bbf: 3.4.3 2021-01-20 20:50:57 +01:00
Sukru Senli
4e78d1c075 wfadata: get controller enabled option from correct section 2021-01-20 18:50:54 +01:00
Jakob Olsson
2109e5ff4f map-controller: 2.0.7 2021-01-20 17:23:19 +01:00
Jakob Olsson
e417f30841 map-agent: 3.1.14 2021-01-20 17:21:14 +01:00
Jakob Olsson
6610f42769 map-controller: 3.1.13 2021-01-20 14:39:21 +01:00
Jakob Olsson
81cdd1a9ea map-controller: 2.0.6 2021-01-20 14:36:47 +01:00
Jakob Olsson
d69061f95e ieee1905: 3.1.35 2021-01-20 14:33:46 +01:00
Omar Kallel
7f757e9291 icwmp: 6.4.3-2021-01-20 2021-01-20 14:17:32 +01:00
Yalu Zhang
5c4719c6e4 Update package dectmngr
Solves the issue that incoming calls were released by CMBS
2021-01-20 11:07:55 +01:00
Omar Kallel
0ea0df8b82 icwmp: 6.4.2-2021-01-20 2021-01-20 10:10:02 +01:00
Omar Kallel
2dceba94a8 icwmp: 6.4.1-2021-01-19 2021-01-19 17:29:07 +01:00
Anjan Chanda
f34380326f wfadatad: 3.1.0 2021-01-19 16:36:09 +01:00
Anjan Chanda
547a976981 wifimngr: 8.5.0 2021-01-18 17:31:39 +01:00
Anjan Chanda
116d6370ca easy-soc-libs: 6.1.4 2021-01-18 17:29:01 +01:00
Jakob Olsson
6024f034ea map-agent: 3.1.12 2021-01-18 13:01:00 +01:00
Amin Ben Ramdhane
4fb8ec2016 bbf: 3.4.2 2021-01-17 18:55:35 +01:00
Amin Ben Ramdhane
5dfa4996a6 bbf: 3.4.1 2021-01-15 17:49:08 +01:00
Jakob Olsson
eaf990c616 ieee1905: 2.1.34 2021-01-15 15:41:43 +01:00
Jakob Olsson
d6cf5b6dfe ieee1905: 2.1.33 2021-01-15 15:34:42 +01:00
Jakob Olsson
03c62cd618 Revert "ieee1905: 2.1.33"
This reverts commit ba0e921101.
2021-01-15 15:33:53 +01:00
Jakob Olsson
ba0e921101 ieee1905: 2.1.33 2021-01-15 15:25:04 +01:00
Jakob Olsson
8428773a9c map-agent: 3.1.11 2021-01-15 13:58:15 +01:00
Amin Ben Ramdhane
0c33f36c88 bbf: 3.4.0 2021-01-14 21:22:56 +01:00
Amin Ben Ramdhane
1c2b381072 bbf: fix the crash on startup 2021-01-13 18:36:01 +01:00
vdutta
4482e7defd uspd: Change startup sequence 2021-01-13 19:44:50 +05:30
Amin Ben Ramdhane
3740560fd3 bbf: 3.3.8 2021-01-12 22:58:30 +01:00
Yalu Zhang
e4cea887e2 Update package: dectmngr 2021-01-12 18:16:29 +01:00
Yalu Zhang
4e42c07257 endptmngr: replace ubus call uci with libuci API calls directly 2021-01-12 18:15:00 +01:00
Jakob Olsson
26e48a7b83 map-agent: 3.1.10 2021-01-12 17:08:09 +01:00
Jakob Olsson
105dab05d2 map-agent: 2.0.5 2021-01-12 16:12:36 +01:00
Jakob Olsson
40e062550b map-agent: 3.1.9 2021-01-12 16:11:34 +01:00
Jani Juvan
7bc068c0c6 Update feed [ iopsys ] package [ dslmngr ]
-------------------------------------------------------------------------------
* 1fa1cee Merge branch 'jani-vendor_id' into 'devel'
* 698eb79 added init of oem parameters
-------------------------------------------------------------------------------
commit 1fa1cee62c52c69c321ddf93399fef9483520996
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2021-01-12 10:31:33 +0000

    Merge branch 'jani-vendor_id' into 'devel'

    dslmngr: add init of oem parameters

    See merge request iopsys/dslmngr!3
Base directory -> /
 dslmngr.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 dslmngr.h |  1 +
 main.c    |  1 +
 3 files changed, 69 insertions(+)
-------------------------------------------------------------------------------
commit 698eb796df310797d7eed7d1d7eb590a9990c66c
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2020-12-18 13:47:20 +0100

    added init of oem parameters

Base directory -> /
 dslmngr.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 dslmngr.h |  1 +
 main.c    |  1 +
 3 files changed, 69 insertions(+)
-------------------------------------------------------------------------------
2021-01-12 13:42:34 +01:00
Jani Juvan
ae243101f1 Update feed [ iopsys ] package [ easy-soc-libs ]
-------------------------------------------------------------------------------
* 0c6fab5 libdsl: add support to set oem parameters
-------------------------------------------------------------------------------
commit 0c6fab539a15ec4b9bd7e5e8b1e9257ae4f68398
Author: Jani Juvan <jani.juvan@iopsys.eu>
Date: 2020-12-17 16:36:17 +0100

    libdsl: add support to set oem parameters

Base directory -> /
 libdsl/broadcom/bcm_dsl_api.c | 29 +++++++++++++++++++++++++++++
 libdsl/xdsl.h                 | 14 ++++++++++++++
 2 files changed, 43 insertions(+)
-------------------------------------------------------------------------------
2021-01-12 13:42:09 +01:00
Shubham Sharma
613ef10273 qosmngr: C daemon for gathering queue stats 2021-01-12 14:17:06 +05:30
Shubham Sharma
06c2d704a9 easy-soc-libs: libqos with APIs for fetching queue stats 2021-01-12 14:17:06 +05:30
Amin Ben Ramdhane
14f7f0d328 bbf: 3.3.7 2021-01-11 21:15:23 +01:00
Jakob Olsson
a0324b3f5e map-agent: bump version 2021-01-10 16:58:57 +01:00
Jakob Olsson
16a9b07497 map-agent: 3.1.8 2021-01-10 16:56:50 +01:00
Jakob Olsson
7c91b86d01 map-agent: 3.1.7
use if_utils easy API
2021-01-08 20:07:50 +01:00
Anjan Chanda
2076e35808 wfadatad: 3.0.5 2021-01-08 19:33:59 +01:00
Sukru Senli
8f04c3e3b3 iop: config: deselect gplv3 wget from default config 2021-01-08 16:45:07 +01:00
Omar Kallel
76b7d03f5e icwmp: 6.4.0-2021-01-08 2021-01-08 16:29:39 +01:00
Anjan Chanda
c3bf9de599 wifimngr: 8.4.0 2021-01-08 12:27:27 +01:00
Anjan Chanda
a3c0948a46 easy-soc-libs: 6.0.4 2021-01-08 10:46:54 +01:00
Omar Kallel
084995366f icwmp: 6.3.9-2021-01-07
add --anyauth to curl as argument for image download
2021-01-07 21:59:24 +01:00
Jakob Olsson
a2468234cd map-agent: 3.1.6 2021-01-07 17:19:33 +01:00
Sukru Senli
39445eaec0 iop: config: select jq 2021-01-07 14:22:33 +01:00
vdutta
898455ceee uspd: Multiple fixes
- Handle SIGSEGV while access libbbf API
 - Logic improvement for result printing
2021-01-07 16:14:16 +05:30
Jakob Olsson
7a422d4244 map-1905: 0.0.16 2021-01-07 08:57:38 +01:00
Amin Ben Ramdhane
cbc1f3b798 bbf: 3.3.6 2021-01-06 23:04:53 +01:00
Amin Ben Ramdhane
7e1d84b6d6 twamp: fixed a crash
The IP.Interface object has been reworked in ticket 2920 without updating twamp accordingly causing this crash
2021-01-06 22:59:20 +01:00
Omar Kallel
9821c3fbac icwmp: 6.3.8-2021-01-06 2021-01-06 11:37:48 +01:00
Omar Kallel
1eb318b09a icwmp: cleanup 2021-01-05 16:00:38 +01:00
Yalu Zhang
b1e3ef111b Install /etc/init.d/dect 2021-01-05 11:26:56 +01:00
Yalu Zhang
e57d5962d1 Add etc/init.d/dect 2021-01-05 11:18:40 +01:00
Omar Kallel
556cd32a18 icwmp: 6.3.6-2021-01-04 2021-01-04 20:04:06 +01:00
Yalu Zhang
61cf78c264 Add package dectmngr 2021-01-04 17:21:18 +01:00
Jakob Olsson
9dfcb15415 map-agent: 3.1.5 2021-01-04 17:18:48 +01:00
Jakob Olsson
1420241d40 map-controller: 2.0.4 2021-01-04 17:18:11 +01:00
Jakob Olsson
530a4b99bd map-agent: 3.1.4 2021-01-04 16:22:47 +01:00
Amin Ben Ramdhane
21b3284b75 bbf: remove cwmp dependency 2021-01-04 10:31:52 +01:00
Omar Kallel
04d13dc7a4 icwmp: 6.3.5-2021-01-04 2021-01-04 09:07:15 +01:00
Omar Kallel
a290ae71ee icwmp: 6.3.4 04-01-2021 2021-01-04 08:24:13 +01:00
Omar Kallel
d45f42427f icwmp: make diagnostics independent from libbbf and remove libbbf dependency 2020-12-31 18:30:58 +01:00
Amin Ben Ramdhane
a230016663 bbf: 3.3.3 2020-12-30 20:57:45 +01:00
Amin Ben Ramdhane
60314e6a42 bbf: 3.3.2 2020-12-29 14:57:27 +01:00
Sukru Senli
38702b44c4 iop: remove reference to unavailable packages 2020-12-28 13:04:44 +01:00
Sukru Senli
75b9f292a0 natalie-dect-h: remove package 2020-12-28 12:59:23 +01:00
Sukru Senli
2fc567be5d tr098: remove package 2020-12-28 11:04:55 +01:00
Omar Kallel
94db04db83 icwmp: Werror flag 2020-12-24 11:24:10 +01:00
Omar Kallel
d9ae8fac97 icwmp: source enhancements 2020-12-23 19:30:27 +01:00
Amin Ben Ramdhane
34dda55644 bbf: 3.3.1 2020-12-23 17:14:02 +01:00
Amin Ben Ramdhane
a6ee4c8122 bbf: 3.3.0 2020-12-23 16:08:12 +01:00
Amin Ben Ramdhane
368ddf1d31 bbf: 3.2.9 2020-12-23 15:37:12 +01:00
Oussama Ghorbel
bcdc8e5dc0 Update feed [ iopsys ] package [ questd ]
-------------------------------------------------------------------------------
* d554541 added Idle support for processs state
* 5ef2891 Questd network module tests
* 435c348 network: increment max client to 256
-------------------------------------------------------------------------------
commit d554541ac6fb8ef14431fcec9a31dbcb52181279
Author: Oussama Ghorbel <oussama.ghorbel@iopsys.eu>
Date: 2020-12-23 15:17:00 +0100

    added Idle support for processs state

Base directory -> /
 system/system.c | 2 ++
 1 file changed, 2 insertions(+)
-------------------------------------------------------------------------------
commit 5ef2891e3ab55e42a5f84af4f678ec5b8e2d6a17
Author: Ozan Tanfener <ozan.tanfener@iopsys.eu>
Date: 2020-09-18 15:11:56 +0200

    Questd network module tests

Base directory -> /
 .gitignore                                    |   3 +-
 .gitlab-ci.yml                                |  40 +-
 CMakeLists.txt                                |   2 +-
 cmake/modules/FindJSON-EDITOR.cmake           |  35 ++
 docs/api/router.network.md                    | 492 +++++++++++++++
 docs/api/router.system.md                     | 823 ++++++++++++++++++++++++++
 docs/functionspec.md                          |  99 ++++
 docs/testspec.md                              | 210 +++++++
 docs/ubus.splash.md                           |   5 +
 gitlab-ci/functional-api-test.sh              |  23 +
 gitlab-ci/functional-test.sh                  |  19 +
 gitlab-ci/install-dependencies.sh             |  40 ++
 gitlab-ci/iopsys-supervisord.conf             |   8 +
 gitlab-ci/setup.sh                            |  45 ++
 network/network.c                             | 274 ++++-----
 schemas/router.network.json                   | 138 +++++
 schemas/router.system.json                    |  22 +-
 supervisord.conf                              |  11 -
 test/CMakeLists.txt                           |  47 --
 test/api/json/router.network.validation.json  |   9 +
 test/cmocka/CMakeLists.txt                    |  44 ++
 test/{ => cmocka}/db-setup.sh                 |   0
 test/cmocka/files/etc/config/dhcp             |  48 ++
 test/cmocka/files/etc/config/network          |  46 ++
 test/cmocka/files/etc/config/wireless         |  55 ++
 test/cmocka/files/etc/wifi.json               |  13 +
 test/cmocka/files/odhcpd                      |   4 +
 test/cmocka/files/var/dhcp.client.options     |   3 +
 test/cmocka/files/var/dhcp.leases             |   3 +
 test/cmocka/network_tests.c                   | 231 ++++++++
 test/cmocka/network_tests.h                   |  16 +
 test/{system-test.c => cmocka/system_tests.c} |   0
 tools.c                                       |   2 +-
 33 files changed, 2594 insertions(+), 216 deletions(-)
-------------------------------------------------------------------------------
commit 435c34859a36ff09813b19f9f7220db3f08c19af
Author: Sukru Senli <sukru.senli@iopsys.eu>
Date: 2020-09-08 16:28:28 +0200

    network: increment max client to 256

Base directory -> /
 network/network.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
2020-12-23 15:36:17 +01:00
Yalu Zhang
781f3409ad Remove package natalie-dect 2020-12-23 15:02:49 +01:00
Yalu Zhang
4cc72a2dc6 Remove package dectmngr2 2020-12-23 14:49:09 +01:00
Amin Ben Ramdhane
93dee37808 bbf: 3.2.8 2020-12-23 09:53:17 +01:00
Sukru Senli
42bc8f91ce wifimngr: start WPS in client mode correctly 2020-12-22 16:24:07 +01:00
Sukru Senli
5d16f075ab wifimngr: remove extra file 2020-12-22 16:13:00 +01:00
Sukru Senli
841751d7e2 wifimngr: put all files under correct directory and use a temporary wps-monitor script for LED handling 2020-12-22 15:57:02 +01:00
Yalu Zhang
8bc324c3b4 Update feed: endptmngr 2020-12-22 11:20:55 +01:00
Sukru Senli
20287be7e2 obuspa: install hotplug script 2020-12-22 10:27:35 +01:00
Sukru Senli
6d1e026af4 obuspa: do not reload if data changes with ifupdate 2020-12-22 09:52:57 +01:00
Sukru Senli
2cfabc4eb2 obuspa: use hotplug instead of procd interface trigger 2020-12-22 09:43:17 +01:00
214 changed files with 3298 additions and 12336 deletions

View File

@@ -24,6 +24,7 @@ PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/mediatek/ated.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@@ -1,19 +1,27 @@
if PACKAGE_libbbfdm
config LIBBBFDM_VENDOR_PREFIX
string "Vendor Prefix"
default "X_IOPSYS_EU_"
config BBF_VENDOR_EXTENSION
bool "Enable Vendor Extension"
default y
config BBF_VENDOR_LIST
string "Vendor List"
default "iopsys"
config BBF_VENDOR_PREFIX
string "Vendor Prefix"
default "X_IOPSYS_EU_"
config BBF_TR181
bool "Compile with tr181 device features"
bool "Enable TR-181 Data Model Support"
default y
config BBF_TR104
bool "Compile with tr104 voice features"
bool "Enable TR-104 Data Model Support"
default y
config BBF_TR143
bool "Compile with tr143 diagnostics features"
bool "Enable TR-143 Data Model Support"
default y
endif

View File

@@ -1,17 +1,18 @@
#
# Copyright (C) 2019 IOPSYS
# Copyright (C) 2021 IOPSYS
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm
PKG_VERSION:=3.2.7
PKG_VERSION:=4.4.0
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=ae196c54590dc343db14a70879f21ef88203c426
PKG_SOURCE_VERSION:=5c1a146fdb8123d38cf2e074d9a4103ab6ed34ff
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -24,6 +25,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/libbbf_api
SECTION:=libs
CATEGORY:=Libraries
SUBMENU:=BBF
TITLE:=Library for libbbfdm API
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c
endef
@@ -31,8 +33,9 @@ endef
define Package/libbbfdm
SECTION:=libs
CATEGORY:=Libraries
SUBMENU:=BBF
TITLE:=Library for broadband-forum data model
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libbbf_api +libopenssl +libmbedtls
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libbbf_api +libopenssl +libmbedtls +libcurl
endef
define Package/libbbfdm/config
@@ -54,7 +57,8 @@ define Build/Prepare
endef
endif
TARGET_CFLAGS += -DCUSTOM_PREFIX=\\\"$(CONFIG_LIBBBFDM_VENDOR_PREFIX)\\\"
TARGET_CFLAGS += -DBBF_VENDOR_LIST=\\\"$(CONFIG_BBF_VENDOR_LIST)\\\"
TARGET_CFLAGS += -DBBF_VENDOR_PREFIX=\\\"$(CONFIG_BBF_VENDOR_PREFIX)\\\"
TARGET_CFLAGS += \
-D_GNU_SOURCE -D_AADJ
@@ -84,6 +88,15 @@ CONFIGURE_ARGS += \
--enable-libmbedtls
endif
ifeq ($(CONFIG_BBF_VENDOR_EXTENSION),y)
CONFIGURE_ARGS += \
--enable-vendor-extension
CONFIGURE_ARGS += \
BBF_VENDOR_LIST="$(CONFIG_BBF_VENDOR_LIST)"
endif ##CONFIG_BBF_VENDOR_EXTENSION
define Package/libbbf_api/install
$(INSTALL_DIR) $(1)/lib
$(CP) $(PKG_BUILD_DIR)/bin/.libs/libbbf_api.so* $(1)/lib/
@@ -93,8 +106,9 @@ define Package/libbbfdm/install
$(INSTALL_DIR) $(1)/lib
$(CP) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.so* $(1)/lib/
$(INSTALL_DIR) $(1)/usr/share/bbfdm
$(CP) $(PKG_BUILD_DIR)/scripts/functions $(1)/usr/share/bbfdm
$(CP) $(PKG_BUILD_DIR)/scripts/* $(1)/usr/share/bbfdm
$(INSTALL_DIR) $(1)/etc/bbfdm
$(INSTALL_DIR) $(1)/etc/bbfdm/dmmap
$(INSTALL_DIR) $(1)/etc/bbfdm/json
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
endef

View File

@@ -8,10 +8,20 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bulkdata
PKG_VERSION:=1.0.0
PKG_VERSION:=1.0.1
PKG_SOURCE_VERSION:=e4f39d1bf4678fc05b9d02e81b194c70719909e4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
@@ -26,10 +36,6 @@ define Package/$(PKG_NAME)/description
BBF BulkData Collection
endef
define Build/Prepare
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
TARGET_CFLAGS += \
-D_GNU_SOURCE
@@ -41,4 +47,4 @@ define Package/$(PKG_NAME)/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -1,23 +0,0 @@
PROG = bulkdatad
LIB = libbulkdata.so
PROG_OBJS = bulkdata.o common.o config.o http.o log.o report.o times.o buci.o
LIB_OBJS = datamodel.o
PROG_CFLAGS = $(CFLAGS) -Wall -Werror -fPIC
PROG_LDFLAGS = $(LDFLAGS) -lubus -luci -lubox -ljson-c -lcurl -lblobmsg_json -lbbfdm -lbbf_api
LIB_LDFLAGS = $(LDFLAGS) -lbbf_api
%.o: %.c
$(CC) $(PROG_CFLAGS) $(FPIC) -c -o $@ $<
all: $(PROG) $(LIB)
$(PROG): $(PROG_OBJS)
$(CC) $(PROG_CFLAGS) -o $@ $^ $(PROG_LDFLAGS)
$(LIB): $(LIB_OBJS)
$(CC) $(PROG_CFLAGS) $(LIB_LDFLAGS) -shared -o $@ $^
clean:
rm -f *.o $(PROG) $(LIB)

View File

@@ -1,265 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#include <strings.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include <errno.h>
#include <unistd.h>
#include <ctype.h>
#include "buci.h"
struct uci_context *uci_ctx = NULL;
int buci_init(void)
{
uci_ctx = uci_alloc_context();
if (!uci_ctx) {
return -1;
}
return 0;
}
int buci_fini(void)
{
if (uci_ctx) {
uci_free_context(uci_ctx);
}
return 0;
}
static bool buci_validate_section(const char *str)
{
if (!*str)
return false;
for (; *str; str++) {
unsigned char c = *str;
if (isalnum(c) || c == '_')
continue;
return false;
}
return true;
}
static int buci_init_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *package, char *section, char *option, char *value)
{
memset(ptr, 0, sizeof(struct uci_ptr));
/* value */
if (value) {
ptr->value = value;
}
ptr->package = package;
if (!ptr->package)
goto error;
ptr->section = section;
if (!ptr->section) {
ptr->target = UCI_TYPE_PACKAGE;
goto lastval;
}
ptr->option = option;
if (!ptr->option) {
ptr->target = UCI_TYPE_SECTION;
goto lastval;
} else {
ptr->target = UCI_TYPE_OPTION;
}
lastval:
if (ptr->section && !buci_validate_section(ptr->section))
ptr->flags |= UCI_LOOKUP_EXTENDED;
return 0;
error:
return -1;
}
struct uci_section *buci_walk_section(char *package, char *section_type, struct uci_section *prev_section)
{
struct uci_ptr ptr;
struct uci_element *e;
struct uci_section *next_section;
if (section_type == NULL) {
if (prev_section) {
e = &prev_section->e;
if (e->list.next == &prev_section->package->sections)
return NULL;
e = container_of(e->list.next, struct uci_element, list);
next_section = uci_to_section(e);
return next_section;
}
else {
if (buci_init_ptr(uci_ctx, &ptr, package, NULL, NULL, NULL)) {
return NULL;
}
if (uci_lookup_ptr(uci_ctx, &ptr, NULL, true) != UCI_OK) {
return NULL;
}
if (ptr.p->sections.next == &ptr.p->sections)
return NULL;
e = container_of(ptr.p->sections.next, struct uci_element, list);
next_section = uci_to_section(e);
return next_section;
}
}
else {
struct uci_list *ul, *shead = NULL;
if (prev_section) {
ul = &prev_section->e.list;
shead = &prev_section->package->sections;
}
else {
if (buci_init_ptr(uci_ctx, &ptr, package, NULL, NULL, NULL)) {
return NULL;
}
if (uci_lookup_ptr(uci_ctx, &ptr, NULL, true) != UCI_OK) {
return NULL;
}
ul = &ptr.p->sections;
shead = &ptr.p->sections;
}
while (ul->next != shead) {
e = container_of(ul->next, struct uci_element, list);
next_section = uci_to_section(e);
if (strcmp(next_section->type, section_type) == 0)
return next_section;
ul = ul->next;
}
return NULL;
}
return NULL;
}
void buci_print_list(struct uci_list *uh, char **val, char *delimiter)
{
struct uci_element *e;
static char buffer[512];
char *buf = buffer;
*buf = '\0';
uci_foreach_element(uh, e) {
if (*buf) {
strcat(buf, delimiter);
strcat(buf, e->name);
}
else {
strcpy(buf, e->name);
}
}
*val = buf;
}
struct uci_element *buci_lookup_list(struct uci_list *list, const char *name)
{
struct uci_element *e;
uci_foreach_element(list, e) {
if (!strcmp(e->name, name))
return e;
}
return NULL;
}
int uci_lookup_ptr_bysection(struct uci_context *ctx, struct uci_ptr *ptr, struct uci_section *section, char *option, char *value)
{
struct uci_element *e;
memset(ptr, 0, sizeof(struct uci_ptr));
ptr->package = section->package->e.name;
ptr->section = section->e.name;
ptr->option = option;
ptr->value = value;
ptr->flags |= UCI_LOOKUP_DONE;
ptr->p = section->package;
ptr->s = section;
if (ptr->option) {
e = buci_lookup_list(&ptr->s->options, ptr->option);
if (!e)
return UCI_OK;
ptr->o = uci_to_option(e);
ptr->last = e;
ptr->target = UCI_TYPE_OPTION;
}
else {
ptr->last = &ptr->s->e;
ptr->target = UCI_TYPE_SECTION;
}
ptr->flags |= UCI_LOOKUP_COMPLETE;
return UCI_OK;
}
char *buci_get_value_bysection(struct uci_section *section, char *option)
{
struct uci_ptr ptr;
char *val = "";
if (uci_lookup_ptr_bysection(uci_ctx, &ptr, section, option, NULL) != UCI_OK) {
return val;
}
if (!ptr.o)
return val;
if(ptr.o->type == UCI_TYPE_LIST) {
buci_print_list(&ptr.o->v.list, &val, " ");
return val;
}
if (ptr.o->v.string)
return ptr.o->v.string;
else
return val;
}
char *buci_get_value(char *package, char *section, char *option)
{
struct uci_ptr ptr;
char *val = "";
if (!section || !option)
return val;
if (buci_init_ptr(uci_ctx, &ptr, package, section, option, NULL)) {
return val;
}
if (uci_lookup_ptr(uci_ctx, &ptr, NULL, true) != UCI_OK) {
return val;
}
if (!ptr.o)
return val;
if(ptr.o->type == UCI_TYPE_LIST) {
buci_print_list(&ptr.o->v.list, &val, " ");
return val;
}
if (ptr.o->v.string)
return ptr.o->v.string;
else
return val;
}

View File

@@ -1,31 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#ifndef __BUCI_H
#define __BUCI_H
#include <uci.h>
int buci_init(void);
int buci_fini(void);
struct uci_section *buci_walk_section(char *package, char *section_type, struct uci_section *prev_section);
void buci_print_list(struct uci_list *uh, char **val, char *delimiter);
struct uci_element *buci_lookup_list(struct uci_list *list, const char *name);
int uci_lookup_ptr_bysection(struct uci_context *ctx, struct uci_ptr *ptr, struct uci_section *section, char *option, char *value);
char *buci_get_value_bysection(struct uci_section *section, char *option);
char *buci_get_value(char *package, char *section, char *option);
#define buci_foreach_section(package, section_type, section) \
for (section = buci_walk_section(package, section_type, NULL); \
section != NULL; \
section = buci_walk_section(package, section_type, section))
#endif //__BUCI_H

View File

@@ -1,144 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
* Omar Kallel <omar.kallel@pivasoftware.com>
*/
#include <stdio.h>
#include <string.h>
#include <libubox/uloop.h>
#include "http.h"
#include "config.h"
#include "log.h"
#include "common.h"
#include "report.h"
#include "times.h"
#include "bulkdata.h"
struct bulkdata bulkdata_main = {0};
int profiles_number = 0;
void bulkdata_profile_cb(struct uloop_timeout *timeout);
int get_retry_period(int min)
{
srand(time(NULL));
return rand()%min + min;
}
static void bulkdata_run_profiles(struct bulkdata *bulkdata)
{
unsigned int next_period;
int i = 0;
for (i = 0; i < profiles_number; i++) {
bulkdata->profile[i].utimer.cb = bulkdata_profile_cb;
LIST_HEAD(failedreports);
bulkdata->profile[i].failed_reports = &failedreports;
next_period = get_next_period(bulkdata->profile[i].time_reference, bulkdata->profile[i].reporting_interval);
bulkdata_log(SINFO, "The session of profile_id %d will be start in %d sec", bulkdata->profile[i].profile_id, next_period);
uloop_timeout_set(&bulkdata->profile[i].utimer, next_period * 1000);
}
}
int http_send_report(struct profile *profile, char *report)
{
char *msg_in = NULL;
int http_code;
http_client_init(profile);
bulkdata_log(SINFO, "Send the report of profile_id %d to Bulkdata Collector", profile->profile_id);
http_code = http_send_message(profile, report, strlen(report), &msg_in);
http_client_exit();
return http_code;
}
void bulkdata_profile_cb(struct uloop_timeout *timeout)
{
struct profile *profile;
unsigned int http_code, retry_period;
char *report = NULL;
profile = container_of(timeout, struct profile, utimer);
time_t now = time(NULL);
bulkdata_log(SINFO, "New session of profile_id %d started", profile->profile_id);
if(profile->retry_count == 0 || profile->next_retry > now || !profile->http_retry_enable) //Perdiodic execution
create_encoding_bulkdata_report(profile, &report);
else
create_failed_report(profile, &report);
bulkdata_log(SDEBUG, "The content of the profile_id report %d is :\n==========\n%s\n==========\n", profile->profile_id, report);
http_code= http_send_report(profile, report);
if(http_code != 200){
if(profile->retry_count == 0 || profile->next_retry > now || !profile->http_retry_enable) { //Perdiodic execution
retry_period = get_retry_period(profile->http_retry_minimum_wait_interval);
profile->next_period = now + profile->reporting_interval;
profile->next_retry = now + retry_period;
profile->retry_count = 1;
profile->min_retry = profile->http_retry_minimum_wait_interval * 2;
if((profile->next_retry < profile->next_period) && profile->http_retry_enable) {
bulkdata_log(SINFO, "Retry session of profile_id %d in %d sec", profile->profile_id, retry_period);
uloop_timeout_set(timeout, 1000 * retry_period);
}
else {
bulkdata_log(SINFO, "Start New session of profile_id %d in %d sec", profile->profile_id, profile->reporting_interval);
uloop_timeout_set(timeout, 1000 * profile->reporting_interval);
}
} else { //Retry execution
retry_period= get_retry_period(profile->min_retry);
profile->min_retry*=2;
profile->next_retry+=retry_period;
profile->retry_count++;
if(profile->next_retry < profile->next_period) {
bulkdata_log(SINFO, "Retry session of profile_id %d in %d sec", profile->profile_id, retry_period);
uloop_timeout_set(timeout, 1000 * retry_period);
}
else {
bulkdata_log(SINFO, "Retry session of profile_id %d in %d sec", profile->profile_id, (profile->next_period-profile->next_retry+retry_period));
uloop_timeout_set(timeout, 1000 * (profile->next_period-profile->next_retry+retry_period));
}
}
if(profile->new_report){
bulkdata_add_failed_report(profile, profile->new_report);
FREE(profile->new_report);
}
FREE(report);
} else {
if(profile->retry_count == 0 || profile->next_retry > now || !profile->http_retry_enable) {
bulkdata_log(SINFO, "Start New session of profile_id %d in %d sec", profile->profile_id, profile->reporting_interval);
uloop_timeout_set(timeout, 1000 * profile->reporting_interval);
}
else {
bulkdata_log(SINFO, "Retry session of profile_id %d in %d sec", profile->profile_id, (profile->next_period-profile->next_retry));
uloop_timeout_set(timeout, 1000 * (profile->next_period-profile->next_retry));
}
FREE(profile->new_report);
FREE(report);
empty_failed_reports_list(profile);
profile->retry_count= 0;
}
}
int main(void)
{
struct bulkdata *bulkdata = &bulkdata_main;
if (bulkdata_config_init(bulkdata) == -1)
return -1;
bulkdata_log(SINFO, "Start bulkdatad daemon");
uloop_init();
bulkdata_run_profiles(bulkdata);
uloop_run();
uloop_done();
bulkdata_config_fini(bulkdata);
bulkdata_log(SINFO, "Stop bulkdatad daemon");
return 0;
}

View File

@@ -1,18 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#ifndef __BULKDATA_H
#define __BULKDATA_H
extern struct bulkdata bulkdata_main;
extern int profiles_number;
#endif /* __BULKDATA_H */

View File

@@ -1,105 +0,0 @@
# README #
bulkdatad is an implementation of The HTTP bulk data collection mechanism which is an extended feature of CPE and other agents implementing TR-069(CWMP) or TR-369(USP), defined by the Broadband Forum. It provides a means by which an Auto-Configuration Server (ACS), or USP Controller, can configure an agent to periodically send a JSON or CSV formatted set of Device information to an HTTP server running a data collection application.
## Configuration File ##
The bulkdatad UCI configuration is located in **'/etc/config/bulkdata'**, and contains 4 sections: **bulkdata**, **profile**, **profile\_parameter** and **profile\_http\_request\_uri\_parameter**.
```
config bulkdata 'bulkdata'
option enable '0'
option log_level '3'
config profile
option profile_id '1'
option enable '0'
option csv_encoding_row_time_stamp 'unix'
option json_encoding_report_time_stamp 'unix'
option http_retry_minimum_wait_interval '5'
option http_retry_interval_multiplier '2000'
config profile_parameter
option profile_id '1'
option name ''
option reference ''
config profile_http_request_uri_parameter
option profile_id '1'
option name ''
option reference ''
```
### bulkdata section ###
It defines **bulkdata configuration**: enable and log\_level.
| Name | Type | Description |
| ----------- | ------- | ----------------------------------------------------------------------------------------------- |
| `enable` | boolean | Enables the BulkData feature if set to **1**. |
| `log_level` | integer | Specifies the log type to use, by default **'INFO'**. The possible types are **'EMERG', 'ALERT', 'CRITIC' ,'ERROR', 'WARNING', 'NOTICE', 'INFO' and 'DEBUG'**. |
### profile section ###
It defines **the profile section configuration**: enable, name,... The possible options for **profile** section are listed below:
| Name | Type | Description |
| ---------------------------------- | ------- | ---------------------------------------------- |
| `profile_id` | integer | The profile id to use. |
| `enable` | boolean | If set to **1**, enables the bulkdata profile. |
| `name` | string | The name of the profile. |
| `nbre_of_retained_failed_reports` | integer | The number of failed reports to be retained and transmitted at the end of the current reporting interval. |
| `protocol` | string | The protocol used for the collection profile. |
| `encoding_type` | string | The encoding type used for the collection profile. |
| `reporting_interval` | integer | The reporting interval in seconds. |
| `time_reference` | integer | The time reference to determine when the profile will be transmitted to the ACS collector. |
| `csv_encoding_field_separator` | string | The field separator to use when encoding CSV data. |
| `csv_encoding_row_separator` | string | The row separator to use when encoding CSV data. |
| `csv_encoding_escape_character` | string | The escape character to use when encoding CSV data. |
| `csv_encoding_report_format` | string | Describes how reports will be formatted. Two possible formats are supported: **'ParameterPerRow' and 'ParameterPerColumn'**. |
| `csv_encoding_row_time_stamp` | string | The format of the timestamp to use for data inserted into the row. The row time stamp supported are **'Unix-Epoch', 'ISO-8601' and 'None'**. |
| `json_encoding_report_format` | string | Describes the report format. The supported report formats are **'ObjectHierarchy' and 'NameValuePair'**. |
| `json_encoding_report_time_stamp` | string | The format of the timestamp to use for the JSON Object named "CollectionTime". The supported timestamp are **'Unix-Epoch', 'ISO-8601' and 'None'**. |
| `http_url` | string | The URL of the collection server. |
| `http_username` | string | The username of the collection server. |
| `http_password` | string | The password of the collection server. |
| `http_compression` | string | The HTTP Compression mechanism used by the collection server. The supported compression mechanism are **'GZIP', 'Compress' and 'Deflate'**. |
| `http_method` | string | The HTTP method used by the collection server. Two methods are supported: **'POST' and 'PUT'**. |
| `http_use_date_header` | boolean | If set to **1**, the CPE encodes the HTTP Date Header. |
| `http_retry_enable` | boolean | If set to **1**, the CPE retries unsuccessful attempts to transfer data. |
| `http_retry_minimum_wait_interval` | integer | The data transfer retry wait interval. |
| `http_retry_interval_multiplier` | integer | The retry interval multiplier. |
| `http_persist_across_reboot` | boolean | If set to **1**, failed data transfers must be persisted across reboots. |
### profile_parameter section ###
It defines **the profile\_parameter section configuration**: profile\_id, name, reference.
| Name | Type | Description |
| ------------ | ------- | --------------------------------------- |
| `profile_id` | integer | The id of the used profile. |
| `name` | string | The name of the profile parameter. |
| `reference` | string | The reference of the profile parameter. |
### profile_http_request_uri_parameter section ###
It defines **the profile\_http\_request\_uri\_parameter section configuration**: profile\_id, name, reference.
| Name | Type | Description |
| ------------ | ------- | --------------------------------------- |
| `profile_id` | integer | The id of the used profile. |
| `name` | string | The name of the Request-URI parameter. |
| `reference` | string | The reference of the profile parameter. |
## Dependencies ##
To successfully build bulkdatad, the following libraries are needed:
| Dependency | Link | License |
| ----------- | ------------------------------------------- | -------------- |
| libuci | https://git.openwrt.org/project/uci.git | LGPL 2.1 |
| libubox | https://git.openwrt.org/project/libubox.git | BSD |
| libjson-c | https://s3.amazonaws.com/json-c_releases | MIT |
| libcurl | https://dl.uxnr.de/mirror/curl | MIT |
| libbbfdm | https://dev.iopsys.eu/iopsys/bbf.git | LGPL 2.1 |

View File

@@ -1,450 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
* Omar Kallel <omar.kallel@pivasoftware.com>
*/
#include "common.h"
static pathnode *head = NULL;
static pathnode *temphead = NULL;
int bulkdata_dm_ctx_init(struct dmctx *ctx)
{
struct bulkdata *bulkdata = &bulkdata_main;
dm_ctx_init(ctx, bulkdata->instance_mode);
return 0;
}
int bulkdata_dm_ctx_clean(struct dmctx *ctx)
{
dm_ctx_clean(ctx);
return 0;
}
static char **str_split(const char* str, const char* delim, size_t* numtokens)
{
char *s = strdup(str);
size_t tokens_alloc = 1;
size_t tokens_used = 0;
char **tokens = calloc(tokens_alloc, sizeof(char*));
char *token, *strtok_ctx;
for (token = strtok_r(s, delim, &strtok_ctx); token != NULL; token = strtok_r(NULL, delim, &strtok_ctx)) {
if (tokens_used == tokens_alloc) {
tokens_alloc *= 2;
tokens = realloc(tokens, tokens_alloc * sizeof(char*));
}
tokens[tokens_used++] = strdup(token);
}
// cleanup
if (tokens_used == 0) {
FREE(tokens);
} else {
tokens = realloc(tokens, tokens_used * sizeof(char*));
}
*numtokens = tokens_used;
FREE(s);
return tokens;
}
static bool bulkdata_match(const char *string, const char *pattern)
{
regex_t re;
if (regcomp(&re, pattern, REG_EXTENDED) != 0) return 0;
int status = regexec(&re, string, 0, NULL, 0);
regfree(&re);
if (status != 0) return false;
return true;
}
static bool is_res_required(char *str, int *start, int *len)
{
char temp_char[NAME_MAX] = {'\0'};
if (bulkdata_match(str, GLOB_CHAR)) {
int s_len = strlen(str);
int b_len = s_len, p_len = s_len;
char *star = strchr(str, '*');
if(star)
s_len = star - str;
*start = MIN(MIN(s_len, p_len), b_len);
if (*start == s_len)
*len = 1;
strncpy(temp_char, str+*start, *len);
if (bulkdata_match(temp_char, "[*+]+"))
return true;
}
*start = strlen(str);
return false;
}
static void insert(char *data, bool active)
{
pathnode *link = (pathnode*) calloc(1, sizeof(pathnode));
if(!link) {
return;
}
link->ref_path = data;
if(active) {
link->next = head;
head = link;
} else {
link->next = temphead;
temphead = link;
}
}
static void swap_heads(void)
{
pathnode *temp = head;
head = temphead;
temphead = temp;
}
static void deleteList(void)
{
pathnode *ptr = head, *temp;
while(ptr != NULL) {
temp = ptr;
free(ptr->ref_path);
if(ptr->next != NULL) {
ptr = ptr->next;
} else {
ptr = NULL;
}
free(temp);
}
head = NULL;
swap_heads();
}
void bulkdata_add_data_to_list(struct list_head *dup_list, char *name, char *value, char *type)
{
struct resultsnode *link;
link = calloc(1, sizeof(struct resultsnode));
list_add_tail(&link->list, dup_list);
link->name = strdup(name);
link->data = strdup(value);
link->type = strdup(type);
}
void bulkdata_delete_data_from_list(struct resultsnode *link)
{
list_del(&link->list);
FREE(link->name);
FREE(link->data);
FREE(link->type);
FREE(link);
}
void bulkdata_free_data_from_list(struct list_head *dup_list)
{
struct resultsnode *link;
while (dup_list->next != dup_list) {
link = list_entry(dup_list->next, struct resultsnode, list);
bulkdata_delete_data_from_list(link);
}
}
static bool bulkdata_get(int operation, char *path, struct dmctx *dm_ctx)
{
int fault = 0;
switch(operation) {
case CMD_GET_NAME:
fault = dm_entry_param_method(dm_ctx, CMD_GET_NAME, path, "true", NULL);
break;
case CMD_GET_VALUE:
fault = dm_entry_param_method(dm_ctx, CMD_GET_VALUE, path, NULL, NULL);
break;
default:
return false;
}
if (dm_ctx->list_fault_param.next != &dm_ctx->list_fault_param) {
return false;
}
if (fault) {
return false;
}
return true;
}
char *bulkdata_get_value_param(char *path)
{
struct dmctx ctx = {0};
struct dm_parameter *n;
char *value = NULL;
bulkdata_dm_ctx_init(&ctx);
if(bulkdata_get(CMD_GET_VALUE, path, &ctx)) {
list_for_each_entry(n, &ctx.list_parameter, list) {
value = strdup(n->data);
break;
}
}
bulkdata_dm_ctx_clean(&ctx);
return value;
}
void bulkdata_get_value(char *path, struct list_head *list)
{
struct dmctx ctx = {0};
struct dm_parameter *n;
bulkdata_dm_ctx_init(&ctx);
if(bulkdata_get(CMD_GET_VALUE, path, &ctx)) {
list_for_each_entry(n, &ctx.list_parameter, list) {
bulkdata_add_data_to_list(list, n->name, n->data, n->type);
}
}
bulkdata_dm_ctx_clean(&ctx);
}
bool bulkdata_get_name(char *path)
{
struct dmctx ctx = {0};
struct dm_parameter *n;
bool ret = false;
bulkdata_dm_ctx_init(&ctx);
if(bulkdata_get(CMD_GET_NAME, path, &ctx)) {
list_for_each_entry(n, &ctx.list_parameter, list) {
insert(strdup(n->name), false);
}
ret = true;
}
bulkdata_dm_ctx_clean(&ctx);
return ret;
}
static void fill_node_path(void)
{
pathnode *p=head;
while(p!=NULL) {
bulkdata_get_name(p->ref_path);
p=p->next;
}
deleteList();
}
static void bulkdata_filter_results(char *path, int start, int end)
{
int startpos = start, m_index = 0, m_len = 0;
char *pp = path + startpos;
char exp[NAME_MAX] = {'\0'};
if(start >= end) {
return;
}
if(!is_res_required(pp, &m_index, &m_len)) {
//append rest of the path to the final list
if(pp == path ) {
insert(strdup(pp), true);
return;
}
pathnode *p = head;
while(p != NULL) {
char name[NAME_MAX] = {'\0'};
strcpy(name, p->ref_path);
strcat(name, pp);
insert(strdup(name), false);
p = p->next;
}
deleteList();
return;
}
// Get the string before the match
char name[NAME_MAX]={'\0'};
strncpy(name, pp, m_index);
pathnode *p = head;
if(p == NULL) {
insert(strdup(name), false);
}
while(p != NULL) {
char ref_name[NAME_MAX] = {'\0'};
sprintf(ref_name, "%s%s", p->ref_path, name);
insert(strdup(ref_name), false);
p = p->next;
}
deleteList();
startpos += m_index;
strncpy(exp, pp+m_index, m_len);
pp = path + startpos;
fill_node_path();
startpos += 2;
bulkdata_filter_results(path, startpos, end);
}
static void bulkdata_parse_results(struct list_head *list)
{
pathnode *p = head;
while(p != NULL) {
bulkdata_get_value(p->ref_path, list);
p = p->next;
}
deleteList();
}
void bulkdata_get_value_results(char *path, struct list_head *list)
{
bulkdata_filter_results(path, 0, strlen(path));
bulkdata_parse_results(list);
}
char *create_request_url(struct profile *profile)
{
int i = 0, http_uri_number = profile->profile_http_request_uri_parameter_number;
char *value, *uri_param = NULL, *uri_tmp = NULL, *http_url = NULL;
for (i = 0; i < http_uri_number; i++)
{
if((profile->profile_http_uri_parameter[i].reference == NULL) || (profile->profile_http_uri_parameter[i].name == NULL))
continue;
value = bulkdata_get_value_param(profile->profile_http_uri_parameter[i].reference);
if(!uri_param) {
asprintf(&uri_param, "&%s=%s", profile->profile_http_uri_parameter[i].name, value);
free(value);
}
else {
uri_tmp = strdup(uri_param);
free(uri_param);
asprintf(&uri_param, "%s&%s=%s", uri_tmp, profile->profile_http_uri_parameter[i].name, value);
free(value);
free(uri_tmp);
}
}
if(uri_param) {
asprintf(&http_url, "%s%s", profile->http_url, uri_param);
free(uri_param);
} else {
asprintf(&http_url, "%s", profile->http_url);
}
return http_url;
}
char *get_bulkdata_profile_parameter_name(char *paramref, char *paramname, char *param)
{
char **paramarr, *idx1 = NULL, *idx2 = NULL, *res = NULL, *instance = NULL, *tmp = NULL, *retparam = NULL, *s = NULL;
int i, j = 0;
size_t length;
if(paramname == NULL || strlen(paramname) <= 0)
return strdup(param);
paramarr = str_split(paramref, "*", &length);
res = strdup(paramname);
for(i = 0; i < length; i++) {
if(i == length - 1)
break;
j++;
idx1 = strstr(param, paramarr[i]);
idx2 = strstr(param, paramarr[i+1]);
instance = (char*)calloc(idx2 - idx1 - strlen(paramarr[i]) + 1, sizeof(char));
memcpy(instance, idx1 + strlen(paramarr[i]), idx2 - idx1 - strlen(paramarr[i]));
tmp = strdup(res);
FREE(res);
asprintf(&res, "%s.%s", tmp, instance);
FREE(tmp);
FREE(instance);
}
if ((s = strstr(param,paramarr[j]) ) != NULL && strlen(s) == strlen(paramarr[j]))
asprintf(&retparam, "%s", res);
else
asprintf(&retparam, "%s.%s", res, strstr(param, paramarr[j]) + strlen(paramarr[j]));
FREE(res);
for(int k = 0; k < length; k++)
FREE(paramarr[k]);
FREE(paramarr);
return retparam;
}
void append_string_to_string(char *strappend, char **target)
{
char *tmp = NULL;
if(strappend == NULL || strlen(strappend) <= 0)
return;
if(*target == NULL || strlen(*target) <= 0) {
*target = strdup(strappend);
return;
} else {
tmp = strdup(*target);
FREE(*target);
}
asprintf(target, "%s%s", tmp, strappend);
FREE(tmp);
}
void bulkdata_add_failed_report(struct profile *profile, char *freport)
{
struct failed_reports *report, *retreport, *rtmp;
if(profile->nbre_failed_reports < profile->nbre_of_retained_failed_reports || profile->nbre_of_retained_failed_reports < 0) {
profile->nbre_failed_reports++;
} else {
list_for_each_entry_safe(retreport, rtmp, profile->failed_reports, list) {
bulkdata_delete_failed_report(retreport);
break;
}
}
report = calloc(1, sizeof(struct failed_reports));
list_add_tail(&report->list, profile->failed_reports);
report->freport= strdup(freport);
}
void bulkdata_delete_failed_report(struct failed_reports *report)
{
if(report != NULL) {
list_del(&report->list);
FREE(report->freport);
FREE(report);
}
}
struct failed_reports* empty_failed_reports_list(struct profile *profile)
{
struct failed_reports *report, *rtmp;
if(list_empty(profile->failed_reports))
return NULL;
list_for_each_entry_safe(report, rtmp, profile->failed_reports, list) {
list_del(&report->list);
FREE(report->freport);
FREE(report);
}
return NULL;
}
void add_failed_reports_to_report_csv(struct profile *profile, char **report, int isnext)
{
struct failed_reports *retreport = NULL;
int j = 0;
if(list_empty(profile->failed_reports))
return;
list_for_each_entry(retreport, profile->failed_reports, list) {
if(!j && isnext) {
j = 1;
continue;
}
append_string_to_string(retreport->freport, report);
}
}

View File

@@ -1,69 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#ifndef __COMMON_H
#define __COMMON_H
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <regex.h>
#include <sys/param.h>
#include <libubox/blobmsg.h>
#include <libubox/blobmsg_json.h>
#include <libubox/utils.h>
#include <libubus.h>
#include <libbbfdm/dmentry.h>
#include <libbbfdm/dmbbfcommon.h>
#include "config.h"
#include "log.h"
#include "bulkdata.h"
typedef struct pathnode {
char *ref_path;
struct pathnode *next;
} pathnode;
typedef struct resultsnode {
struct list_head list;
char *name;
char *data;
char *type;
} resultsnode;
struct failed_reports {
struct list_head list;
char *freport;
};
#define GLOB_CHAR "[[+*]+"
int bulkdata_dm_ctx_init(struct dmctx *ctx);
int bulkdata_dm_ctx_clean(struct dmctx *ctx);
char *bulkdata_get_value_param(char *path);
void bulkdata_get_value(char *path, struct list_head *list);
void bulkdata_free_data_from_list(struct list_head *dup_list);
void bulkdata_get_value_results(char *path, struct list_head *list);
char *create_request_url(struct profile *profile);
char *get_bulkdata_profile_parameter_name(char *paramref, char *paramname, char *param);
void append_string_to_string(char *strappend, char **target);
void bulkdata_add_failed_report(struct profile *profile, char *freport);
void bulkdata_delete_failed_report(struct failed_reports *report);
struct failed_reports *empty_failed_reports_list(struct profile *profile);
void add_failed_reports_to_report_csv(struct profile *profile, char **report, int isnext);
#endif //__COMMON_H

View File

@@ -1,523 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
* Omar Kallel <omar.kallel@pivasoftware.com>
*/
#include <stdio.h>
#include <strings.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include "log.h"
#include "config.h"
#include "buci.h"
#include "common.h"
#include "bulkdata.h"
int get_log_level_config(struct bulkdata *bulkdata)
{
char *value = NULL;
buci_init();
value = buci_get_value("bulkdata", "bulkdata", "log_level");
if(value != NULL && *value != '\0')
bulkdata->log_level = atoi(value);
else
bulkdata->log_level = DEFAULT_LOGLEVEL;
bulkdata_log(SDEBUG,"Log Level of Bulkdata is : %d", bulkdata->log_level);
buci_fini();
return 0;
}
int get_amd_version_config(struct bulkdata *bulkdata)
{
char *value = NULL;
buci_init();
value = buci_get_value("cwmp", "cpe", "amd_version");
if(value != NULL && *value != '\0')
bulkdata->amd_version = atoi(value);
else
bulkdata->amd_version = DEFAULT_AMD_VERSION;
bulkdata_log(SDEBUG,"CWMP Amendment Version is : %d", bulkdata->amd_version);
buci_fini();
return 0;
}
int get_instance_mode_config(struct bulkdata *bulkdata)
{
char *value = NULL;
buci_init();
value = buci_get_value("cwmp", "cpe", "instance_mode");
if(value != NULL && *value != '\0') {
if(!strcmp(value, "InstanceNumber"))
bulkdata->instance_mode = INSTANCE_MODE_NUMBER;
else
bulkdata->instance_mode = INSTANCE_MODE_ALIAS;
}
else
bulkdata->instance_mode = DEFAULT_INSTANCE_MODE;
bulkdata_log(SDEBUG,"CWMP Instance Mode is : %d", bulkdata->instance_mode);
buci_fini();
return 0;
}
int get_device_id_config(struct bulkdata *bulkdata)
{
struct dmctx dmctx = {0};
bulkdata_dm_ctx_init(&dmctx);
bulkdata->device_id.manufacturer_oui = bulkdata_get_value_param("Device.DeviceInfo.ManufacturerOUI");
bulkdata->device_id.product_class = bulkdata_get_value_param("Device.DeviceInfo.ProductClass");
bulkdata->device_id.serial_number = bulkdata_get_value_param("Device.DeviceInfo.SerialNumber");
bulkdata_dm_ctx_clean(&dmctx);
return 0;
}
int load_profile_config(struct bulkdata *bulkdata, struct uci_section *s, int i)
{
char *value = NULL;
value = buci_get_value_bysection(s, "profile_id");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].profile_id = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The profile_id of profile_id %d is : %d", i, bulkdata->profile[i].profile_id);
} else
return -1;
value = buci_get_value_bysection(s, "nbre_of_retained_failed_reports");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].nbre_of_retained_failed_reports = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The nombre of retained failed reports of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].nbre_of_retained_failed_reports);
}
value = buci_get_value_bysection(s, "protocol");
if(value != NULL && *value != '\0' && strcasecmp(value, "http")==0) {
bulkdata->profile[i].protocol = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The protocol of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].protocol);
} else
return -1;
value = buci_get_value_bysection(s, "encoding_type");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].encoding_type = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The encoding type of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].encoding_type);
} else
return -1;
value = buci_get_value_bysection(s, "reporting_interval");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].reporting_interval = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The reporting interval of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].reporting_interval);
} else
return -1;
value = buci_get_value_bysection(s, "time_reference");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].time_reference = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The time reference of profile_id %d is : %ld", bulkdata->profile[i].profile_id, bulkdata->profile[i].time_reference);
} else
return -1;
value = buci_get_value_bysection(s, "csv_encoding_field_separator");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].csv_encoding_field_separator = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The csv encoding field separator of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].csv_encoding_field_separator);
} else
return -1;
value = buci_get_value_bysection(s, "csv_encoding_row_separator");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].csv_encoding_row_separator = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The csv encoding row separator of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].csv_encoding_row_separator);
} else
return -1;
value = buci_get_value_bysection(s, "csv_encoding_escape_character");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].csv_encoding_escape_character = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The csv encoding escape character of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].csv_encoding_escape_character);
}
value = buci_get_value_bysection(s, "csv_encoding_report_format");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].csv_encoding_report_format = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The csv encoding report format of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].csv_encoding_report_format);
} else
return -1;
value = buci_get_value_bysection(s, "csv_encoding_row_time_stamp");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].csv_encoding_row_time_stamp = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The csv encoding row time stamp of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].csv_encoding_row_time_stamp);
} else
return -1;
value = buci_get_value_bysection(s, "json_encoding_report_format");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].json_encoding_report_format = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The json encoding report format of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].json_encoding_report_format);
} else
return -1;
value = buci_get_value_bysection(s, "json_encoding_report_time_stamp");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].json_encoding_report_time_stamp = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The json encoding report time stamp of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].json_encoding_report_time_stamp);
} else
return -1;
value = buci_get_value_bysection(s, "http_url");
if(value != NULL && *value != '\0') {
char *url = NULL;
asprintf(&url, "%s?oui=%s&pc=%s&sn=%s", value, bulkdata->device_id.manufacturer_oui, bulkdata->device_id.serial_number, bulkdata->device_id.serial_number);
bulkdata->profile[i].http_url = strdup(url);
free(url);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP url of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_url);
} else
return -1;
value = buci_get_value_bysection(s, "http_username");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_username = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP username of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_username);
} else {
bulkdata->profile[i].http_username = NULL;
}
value = buci_get_value_bysection(s, "http_password");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_password = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP password of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_password);
} else {
bulkdata->profile[i].http_password = NULL;
}
value = buci_get_value_bysection(s, "http_compression");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_compression = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP compression of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_compression);
} else
return -1;
value = buci_get_value_bysection(s, "http_method");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_method = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP method of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_method);
} else
return -1;
value = buci_get_value_bysection(s, "http_use_date_header");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_use_date_header = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP use date header of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_use_date_header);
}
value = buci_get_value_bysection(s, "http_retry_enable");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_retry_enable = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP retry enable of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_retry_enable);
} else
return -1;
value = buci_get_value_bysection(s, "http_retry_minimum_wait_interval");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_retry_minimum_wait_interval = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP retry minimum wait interval of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_retry_minimum_wait_interval);
}
value = buci_get_value_bysection(s, "http_retry_interval_multiplier");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_retry_interval_multiplier = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP retry interval multiplier of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_retry_interval_multiplier);
}
value = buci_get_value_bysection(s, "http_persist_across_reboot");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_persist_across_reboot = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP persist across reboot of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_persist_across_reboot);
} else
return -1;
value = buci_get_value_bysection(s, "http_ssl_capath");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_ssl_capath = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP ssl capath of profile_id %d is : %s", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_ssl_capath);
} else {
bulkdata->profile[i].http_ssl_capath = NULL;
}
value = buci_get_value_bysection(s, "http_insecure_enable");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].http_insecure_enable = atoi(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP insecure enable of profile_id %d is : %d", bulkdata->profile[i].profile_id, bulkdata->profile[i].http_insecure_enable);
}
bulkdata->profile[i].retry_count = 0;
bulkdata->profile[i].nbre_failed_reports = 0;
return 0;
}
int get_profiles_enable(struct bulkdata *bulkdata)
{
struct uci_section *s;
char *enable;
int i = 0, nbr_profiles = 0;
buci_init();
buci_foreach_section("bulkdata", "profile", s) {
enable = buci_get_value_bysection(s, "enable");
if(strcmp(enable, "1") == 0) {
nbr_profiles++;
}
}
if(nbr_profiles != 0)
bulkdata->profile = calloc(2, sizeof(struct profile));
buci_foreach_section("bulkdata", "profile", s) {
enable = buci_get_value_bysection(s, "enable");
if(strcmp(enable, "1") == 0) {
if(load_profile_config(bulkdata, s, i) == -1) {
bulkdata_log(SCRIT,"Not able to start bulkdata: some required bulkdata configurations in profile must be set");
return -1;
}
i++;
}
}
profiles_number = nbr_profiles;
buci_fini();
return 0;
}
int load_profile_parameter_config(struct bulkdata *bulkdata, struct uci_section *s, int i, int j)
{
char *value = NULL;
value = buci_get_value_bysection(s, "name");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].profile_parameter[j].name = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The parameter name %d of profile_id %d is : %s", j+1, bulkdata->profile[i].profile_id, bulkdata->profile[i].profile_parameter[j].name);
} else {
bulkdata->profile[i].profile_parameter[j].name = NULL;
}
value = buci_get_value_bysection(s, "reference");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].profile_parameter[j].reference = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The parameter reference %d of profile_id %d is : %s", j+1, bulkdata->profile[i].profile_id, bulkdata->profile[i].profile_parameter[j].reference);
} else
return -1;
return 0;
}
int get_profiles_parameters(struct bulkdata *bulkdata)
{
struct uci_section *s;
char *profile_id;
int i, j, nbr_profile_parameters;
buci_init();
for (i = 0; i < profiles_number; i++) {
j = 0;
nbr_profile_parameters = 0;
buci_foreach_section("bulkdata", "profile_parameter", s) {
profile_id = buci_get_value_bysection(s, "profile_id");
if(bulkdata->profile[i].profile_id != atoi(profile_id))
continue;
nbr_profile_parameters++;
if(nbr_profile_parameters == 1) {
bulkdata->profile[i].profile_parameter = calloc(1, sizeof(struct profile_parameter));
} else {
bulkdata->profile[i].profile_parameter = realloc(bulkdata->profile[i].profile_parameter, nbr_profile_parameters * sizeof(struct profile_parameter));
}
if(load_profile_parameter_config(bulkdata, s, i, j) == -1) {
bulkdata_log(SCRIT,"Not able to start bulkdata: some required bulkdata configurations in profile_parameter must be set");
return -1;
}
j++;
}
bulkdata->profile[i].profile_parameter_number = nbr_profile_parameters;
}
buci_fini();
return 0;
}
int load_profile_http_request_uri_parameter_config(struct bulkdata *bulkdata, struct uci_section *s, int i, int j)
{
char *value = NULL;
value = buci_get_value_bysection(s, "name");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].profile_http_uri_parameter[j].name = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP resuest URI parameter name %d of profile_id %d is : %s", j+1, bulkdata->profile[i].profile_id, bulkdata->profile[i].profile_http_uri_parameter[j].name);
} else
return -1;
value = buci_get_value_bysection(s, "reference");
if(value != NULL && *value != '\0') {
bulkdata->profile[i].profile_http_uri_parameter[j].reference = strdup(value);
value = NULL;
bulkdata_log(SDEBUG,"The HTTP resuest URI parameter reference %d of profile_id %d is : %s", j+1, bulkdata->profile[i].profile_id, bulkdata->profile[i].profile_http_uri_parameter[j].reference);
} else
return -1;
return 0;
}
int get_profile_http_request_uri_parameter(struct bulkdata *bulkdata)
{
struct uci_section *s;
char *profile_id;
int i, j, nbr_profile_http_request_uri_parameter;
buci_init();
for (i = 0; i < profiles_number; i++) {
j = 0;
nbr_profile_http_request_uri_parameter = 0;
buci_foreach_section("bulkdata", "profile_http_request_uri_parameter", s) {
profile_id = buci_get_value_bysection(s, "profile_id");
if(bulkdata->profile[i].profile_id != atoi(profile_id))
continue;
nbr_profile_http_request_uri_parameter++;
if(nbr_profile_http_request_uri_parameter == 1) {
bulkdata->profile[i].profile_http_uri_parameter = calloc(1, sizeof(struct profile_http_request_uri_parameter));
} else {
bulkdata->profile[i].profile_http_uri_parameter = realloc(bulkdata->profile[i].profile_http_uri_parameter, nbr_profile_http_request_uri_parameter * sizeof(struct profile_http_request_uri_parameter));
}
if(load_profile_http_request_uri_parameter_config(bulkdata, s, i, j)== -1) {
bulkdata_log(SCRIT,"Not able to start bulkdata: some required bulkdata configurations in profile_http_request_uri_parameter must be set");
return -1;
}
j++;
}
bulkdata->profile[i].profile_http_request_uri_parameter_number = nbr_profile_http_request_uri_parameter;
}
buci_fini();
return 0;
}
int bulkdata_config_init(struct bulkdata *bulkdata)
{
get_log_level_config(bulkdata);
get_amd_version_config(bulkdata);
get_instance_mode_config(bulkdata);
get_device_id_config(bulkdata);
if (get_profiles_enable(bulkdata) == -1)
return -1;
if (get_profiles_parameters(bulkdata) == -1)
return -1;
if (get_profile_http_request_uri_parameter(bulkdata) == -1)
return -1;
return 0;
}
int free_device_id_config(struct bulkdata *bulkdata)
{
FREE(bulkdata->device_id.manufacturer_oui);
FREE(bulkdata->device_id.product_class);
FREE(bulkdata->device_id.serial_number);
return 0;
}
int free_profiles_enable(struct bulkdata *bulkdata)
{
for(int i = 0; i < profiles_number; i++) {
FREE(bulkdata->profile[i].protocol);
FREE(bulkdata->profile[i].encoding_type);
FREE(bulkdata->profile[i].csv_encoding_field_separator);
FREE(bulkdata->profile[i].csv_encoding_row_separator);
FREE(bulkdata->profile[i].csv_encoding_escape_character);
FREE(bulkdata->profile[i].csv_encoding_report_format);
FREE(bulkdata->profile[i].csv_encoding_row_time_stamp);
FREE(bulkdata->profile[i].json_encoding_report_format);
FREE(bulkdata->profile[i].json_encoding_report_time_stamp);
FREE(bulkdata->profile[i].http_url);
FREE(bulkdata->profile[i].http_username);
FREE(bulkdata->profile[i].http_password);
FREE(bulkdata->profile[i].http_compression);
FREE(bulkdata->profile[i].http_method);
FREE(bulkdata->profile[i].http_ssl_capath);
}
FREE(bulkdata->profile);
return 0;
}
int free_profiles_parameters(struct bulkdata *bulkdata)
{
for(int i = 0; i < profiles_number; i++) {
for(int j = 0; j < bulkdata->profile[i].profile_parameter_number; j++) {
FREE(bulkdata->profile[i].profile_parameter[j].name);
FREE(bulkdata->profile[i].profile_parameter[j].reference);
}
FREE(bulkdata->profile[i].profile_parameter);
}
return 0;
}
int free_profile_http_request_uri_parameter(struct bulkdata *bulkdata)
{
for(int i = 0; i < profiles_number; i++) {
for(int j = 0; j < bulkdata->profile[i].profile_http_request_uri_parameter_number; j++) {
FREE(bulkdata->profile[i].profile_http_uri_parameter[j].name);
FREE(bulkdata->profile[i].profile_http_uri_parameter[j].reference);
}
FREE(bulkdata->profile[i].profile_http_uri_parameter);
}
return 0;
}
int bulkdata_config_fini(struct bulkdata *bulkdata)
{
free_device_id_config(bulkdata);
free_profiles_parameters(bulkdata);
free_profile_http_request_uri_parameter(bulkdata);
free_profiles_enable(bulkdata);
return 0;
}

View File

@@ -1,103 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#ifndef __CONFIG_H
#define __CONFIG_H
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <time.h>
#include <libubox/uloop.h>
#define DEFAULT_AMD_VERSION 2
#define DEFAULT_INSTANCE_MODE 0
typedef struct device_id {
char *manufacturer_oui;
char *product_class;
char *serial_number;
} device_id;
typedef struct profile_parameter {
int profile_id;
char *name;
char *reference;
} profile_parameter;
typedef struct profile_http_request_uri_parameter {
int profile_id;
char *name;
char *reference;
} profile_http_request_uri_parameter;
typedef struct profile {
struct uloop_timeout utimer;
int profile_id;
int nbre_of_retained_failed_reports;
int nbre_failed_reports;
int reporting_interval;
int profile_parameter_number;
int profile_http_request_uri_parameter_number;
int http_retry_minimum_wait_interval;
int http_retry_interval_multiplier;
int min_retry;
int retry_count;
char *protocol;
char *encoding_type;
char *csv_encoding_field_separator;
char *csv_encoding_row_separator;
char *csv_encoding_escape_character;
char *csv_encoding_report_format;
char *csv_encoding_row_time_stamp;
char *json_encoding_report_format;
char *json_encoding_report_time_stamp;
char *http_url;
char *http_username;
char *http_password;
char *http_compression;
char *http_method;
char *http_ssl_capath;
char *new_report;
time_t time_reference;
time_t next_retry;
time_t next_period;
bool http_persist_across_reboot;
bool http_insecure_enable;
bool enable;
bool http_use_date_header;
bool http_retry_enable;
struct profile_parameter *profile_parameter;
struct profile_http_request_uri_parameter *profile_http_uri_parameter;
struct list_head *failed_reports;
} profile;
typedef struct bulkdata {
struct device_id device_id;
struct profile *profile;
int log_level;
int amd_version;
unsigned int instance_mode;
} bulkdata;
int bulkdata_config_init(struct bulkdata *bulkdata);
int bulkdata_config_fini(struct bulkdata *bulkdata);
#ifndef FREE
#define FREE(x) do { if(x) {free(x); x = NULL;} } while (0)
#endif
#endif //__CONFIG_H

File diff suppressed because it is too large Load Diff

View File

@@ -1,29 +0,0 @@
/*
* Copyright (C) 2020 iopsys Software Solutions AB
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation
*
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*/
#ifndef _BULKDATA_H_
#define _BULKDATA_H_
#include <libbbf_api/dmcommon.h>
extern DMOBJ tDeviceBulkDataObj[];
extern DMOBJ tBulkDataObj[];
extern DMLEAF tBulkDataParams[];
extern DMOBJ tBulkDataProfileObj[];
extern DMLEAF tBulkDataProfileParams[];
extern DMLEAF tBulkDataProfileParameterParams[];
extern DMLEAF tBulkDataProfileCSVEncodingParams[];
extern DMLEAF tBulkDataProfileJSONEncodingParams[];
extern DMOBJ tBulkDataProfileHTTPObj[];
extern DMLEAF tBulkDataProfileHTTPParams[];
extern DMLEAF tBulkDataProfileHTTPRequestURIParameterParams[];
#endif //__BULKDATA_H_

View File

@@ -1,196 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
* Omar Kallel <omar.kallel@pivasoftware.com>
*/
#include "http.h"
static struct http_client http_c;
static CURL *curl;
int http_client_init(struct profile *profile)
{
char *url = create_request_url(profile);
if(url) {
asprintf(&http_c.url, "%s", url);
free(url);
}
bulkdata_log(SINFO, "ACS url: %s", http_c.url);
curl_global_init(CURL_GLOBAL_SSL);
curl = curl_easy_init();
if (!curl) return -1;
return 0;
}
void http_client_exit(void)
{
FREE(http_c.url);
if (http_c.header_list) {
curl_slist_free_all(http_c.header_list);
http_c.header_list = NULL;
}
curl_easy_cleanup(curl);
curl_global_cleanup();
}
static size_t http_get_response(void *buffer, size_t size, size_t rxed, char **msg_in)
{
char *c;
if (asprintf(&c, "%s%.*s", *msg_in, (int) (size * rxed), (char *)buffer) == -1) {
FREE(*msg_in);
return -1;
}
free(*msg_in);
*msg_in = c;
return size * rxed;
}
int http_send_message(struct profile *profile, char *msg_out, int msg_out_len, char **msg_in)
{
CURLcode res;
long http_code = 0;
char errbuf[CURL_ERROR_SIZE];
http_c.header_list = NULL;
http_c.header_list = curl_slist_append(http_c.header_list, "User-Agent: iopsys-bulkdata");
if (!http_c.header_list) return -1;
if (profile->http_use_date_header) {
if (bulkdata_get_time() != NULL) {
http_c.header_list = curl_slist_append(http_c.header_list, bulkdata_get_time());
if (!http_c.header_list) return -1;
}
}
if (strcmp(profile->encoding_type, "json") == 0) {
http_c.header_list = curl_slist_append(http_c.header_list, "Content-Type: application/json; charset=\"utf-8\"");
if (!http_c.header_list) return -1;
if(strcmp (profile->json_encoding_report_format, "objecthierarchy") == 0) {
http_c.header_list = curl_slist_append(http_c.header_list, "BBF-Report-Format: \"ObjectHierarchy\"");
if (!http_c.header_list) return -1;
} else if(strcmp(profile->json_encoding_report_format, "namevaluepair") == 0) {
http_c.header_list = curl_slist_append(http_c.header_list, "BBF-Report-Format: \"NameValuePair\"");
if (!http_c.header_list) return -1;
}
} else if(strcmp(profile->encoding_type, "csv") == 0) {
http_c.header_list = curl_slist_append(http_c.header_list, "Content-Type: text/csv; charset=\"utf-8\"");
if (!http_c.header_list) return -1;
if(strcmp (profile->csv_encoding_report_format, "row") == 0) {
http_c.header_list = curl_slist_append(http_c.header_list, "BBF-Report-Format: \"ParameterPerRow\"");
if (!http_c.header_list) return -1;
} else if(strcmp (profile->csv_encoding_report_format, "column") == 0) {
http_c.header_list = curl_slist_append(http_c.header_list, "BBF-Report-Format: \"ParameterPerColumn\"");
if (!http_c.header_list) return -1;
}
}
curl_easy_setopt(curl, CURLOPT_URL, http_c.url);
curl_easy_setopt(curl, CURLOPT_USERNAME, profile->http_username);
curl_easy_setopt(curl, CURLOPT_PASSWORD, profile->http_password);
curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC|CURLAUTH_DIGEST);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, HTTP_TIMEOUT);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, HTTP_TIMEOUT);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_easy_setopt(curl, CURLOPT_NOBODY, 0);
if(strcasecmp(profile->http_compression, "gzip") == 0) {
curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "gzip");
http_c.header_list = curl_slist_append(http_c.header_list, "Content-Encoding: gzip");
} else if(strcasecmp(profile->http_compression, "compress") == 0) {
curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "compress");
http_c.header_list = curl_slist_append(http_c.header_list, "Content-Encoding: compress");
} else if(strcasecmp(profile->http_compression, "deflate") == 0) {
curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "deflate");
http_c.header_list = curl_slist_append(http_c.header_list, "Content-Encoding: deflate");
}
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, http_c.header_list);
if(strcasecmp(profile->http_method, "put") == 0)
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, msg_out);
if (msg_out)
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) msg_out_len);
else
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 0);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, http_get_response);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, msg_in);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
if (profile->http_ssl_capath)
curl_easy_setopt(curl, CURLOPT_CAPATH, profile->http_ssl_capath);
if (profile->http_insecure_enable) {
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
}
*msg_in = (char *) calloc (1, sizeof(char));
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
size_t len = strlen(errbuf);
if(len) {
if (errbuf[len - 1] == '\n') errbuf[len - 1] = '\0';
bulkdata_log(SCRIT, "libcurl: (%d) %s", res, errbuf);
} else {
bulkdata_log(SCRIT, "libcurl: (%d) %s", res, curl_easy_strerror(res));
}
}
if (!strlen(*msg_in))
FREE(*msg_in);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code);
if(http_code == 200)
bulkdata_log(SINFO, "Receive HTTP 200 OK from Bulkdata Collector");
else if(http_code == 401)
bulkdata_log(SINFO, "Receive HTTP 401 Unauthorized from Bulkdata Collector");
else if(http_code == 204)
bulkdata_log(SINFO, "Receive HTTP 204 No Content from Bulkdata Collector");
else
bulkdata_log(SINFO, "Receive HTTP %d from Bulkdata Collector", http_code);
if(http_code == 415)
{
strcpy(profile->http_compression, "None");
goto error;
}
if (http_code != 200 && http_code != 204)
goto error;
curl_easy_reset(curl);
if (http_c.header_list) {
curl_slist_free_all(http_c.header_list);
http_c.header_list = NULL;
}
if (res) goto error;
return http_code;
error:
FREE(*msg_in);
if (http_c.header_list) {
curl_slist_free_all(http_c.header_list);
http_c.header_list = NULL;
}
return -1;
}

View File

@@ -1,37 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#ifndef __HTTP_H
#define __HTTP_H
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <curl/curl.h>
#include "config.h"
#include "log.h"
#include "times.h"
#include "common.h"
#define HTTP_TIMEOUT 30
struct http_client
{
struct curl_slist *header_list;
char *url;
};
int http_client_init(struct profile *profile);
void http_client_exit(void);
int http_send_message(struct profile *profile, char *msg_out, int msg_out_len, char **msg_in);
#endif //__HTTP_H

View File

@@ -1,57 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
#include <syslog.h>
#include <time.h>
#include "bulkdata.h"
#include "config.h"
#include "log.h"
static const int log_syslogmap[] = {
[SCRIT] = LOG_CRIT,
[SWARNING] = LOG_WARNING,
[SNOTICE] = LOG_NOTICE,
[SINFO] = LOG_INFO,
[SDEBUG] = LOG_DEBUG
};
static const char* log_str[] = {
[SCRIT] = "CRITICAL",
[SWARNING] = "WARNING",
[SNOTICE] = "NOTICE",
[SINFO] = "INFO",
[SDEBUG] = "DEBUG"
};
void bulkdata_log(int priority, const char *format, ...)
{
va_list vl;
if (priority <= bulkdata_main.log_level) {
time_t t = time(NULL);
struct tm tm = *localtime(&t);
va_start(vl, format);
printf("%d-%02d-%02d %02d:%02d:%02d [bulkdata] %s - ", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, log_str[priority]);
vprintf(format, vl);
va_end(vl);
printf("\n");
openlog("bulkdata", 0, LOG_DAEMON);
va_start(vl, format);
vsyslog(log_syslogmap[priority], format, vl);
va_end(vl);
closelog();
}
}

View File

@@ -1,28 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#ifndef __LOG_H
#define __LOG_H
#define DEFAULT_LOGLEVEL SINFO
enum bulkdata_log_level_enum {
SCRIT,
SWARNING,
SNOTICE,
SINFO,
SDEBUG,
__MAX_SLOG
};
void bulkdata_log(int priority, const char *format, ...);
#endif //__LOG_H

View File

@@ -1,336 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
* Author: Omar Kallel <omar.kallel@pivasoftware.com>
*
*/
#include "report.h"
static void add_new_json_obj(json_object *json_obj, char *name, char *data, char *type)
{
json_object *jobj;
if(strstr(type, "unsignedInt") || strstr(type, "int") || strstr(type, "long"))
jobj = json_object_new_int64(atoi(data));
else if(strstr(type, "bool"))
jobj = json_object_new_boolean(atoi(data));
else
jobj = json_object_new_string(data);
json_object_object_add(json_obj, name, jobj);
}
static void create_json_bulkdata_report_object_hierarchy(struct profile *profile, char **report)
{
struct json_object *json_obj, *json_obj1, *json_obj2;
struct resultsnode *p;
int i, j, profile_param_number = profile->profile_parameter_number;
char *param_name, *result, *pch, *pchr, *collection_time = NULL;
char buf[1024] = {0};
json_obj = json_object_new_object();
get_time_stamp(profile->json_encoding_report_time_stamp, &collection_time);
if(collection_time) {
if(strcmp(profile->json_encoding_report_time_stamp, "iso8601") == 0)
json_object_object_add(json_obj, "CollectionTime", json_object_new_string(collection_time));
else
json_object_object_add(json_obj, "CollectionTime", json_object_new_int64(atoi(collection_time)));
free(collection_time);
}
json_obj2 = json_obj;
for (i = 0; i < profile_param_number; i++) {
LIST_HEAD(results_list);
bulkdata_get_value_results(profile->profile_parameter[i].reference, &results_list);
list_for_each_entry(p, &results_list, list) {
char *argv[128] = {0};
j = 0;
param_name = get_bulkdata_profile_parameter_name(profile->profile_parameter[i].reference, profile->profile_parameter[i].name, p->name);
strcpy(buf, param_name);
for (pch = strtok_r(buf, ".", &pchr); pch != NULL; pch = strtok_r(NULL, ".", &pchr)) {
argv[j] = pch;
json_obj1 = (json_object *)bbf_api_dmjson_select_obj(json_obj, argv);
if (json_obj1)
json_obj2 = json_obj1;
else {
if (pchr != NULL && *pchr != '\0') {
json_object *new_obj = json_object_new_object();
json_object_object_add(json_obj2, pch, new_obj);
json_obj2 = new_obj;
}
else
add_new_json_obj(json_obj2, pch, p->data, p->type);
}
j++;
}
}
bulkdata_free_data_from_list(&results_list);
FREE(param_name);
}
result = (char *)json_object_to_json_string_ext(json_obj, JSON_C_TO_STRING_PRETTY);
*report = strdup(result);
json_object_put(json_obj);
}
static void create_json_bulkdata_report_name_value_pair(struct profile *profile, char **report)
{
struct json_object *json_obj;
struct resultsnode *p;
char *param_name, *result, *collection_time = NULL;
int i = 0, profile_param_number = profile->profile_parameter_number;
json_obj = json_object_new_object();
get_time_stamp(profile->json_encoding_report_time_stamp, &collection_time);
if(collection_time) {
if(strcmp(profile->json_encoding_report_time_stamp, "iso8601") == 0)
json_object_object_add(json_obj, "CollectionTime", json_object_new_string(collection_time));
else
json_object_object_add(json_obj, "CollectionTime", json_object_new_int64(atoi(collection_time)));
free(collection_time);
}
for (i = 0; i < profile_param_number; i++) {
LIST_HEAD(results_list);
bulkdata_get_value_results(profile->profile_parameter[i].reference, &results_list);
list_for_each_entry(p, &results_list, list) {
param_name = get_bulkdata_profile_parameter_name(profile->profile_parameter[i].reference, profile->profile_parameter[i].name, p->name);
add_new_json_obj(json_obj, param_name, p->data, p->type);
FREE(param_name);
}
bulkdata_free_data_from_list(&results_list);
}
result = (char *)json_object_to_json_string_ext(json_obj, JSON_C_TO_STRING_PRETTY);
*report = strdup(result);
json_object_put(json_obj);
}
static void add_failed_reports_to_report_json(struct profile *profile, char *new_report, char **report, int isnext)
{
json_object *json_obj, *json_array, *json_string;
struct failed_reports *retreport = NULL;
char *msgout = NULL;
int j = 0;
json_obj = json_object_new_object();
json_array = json_object_new_array();
json_object_object_add(json_obj,"Report", json_array);
if(list_empty(profile->failed_reports))
goto new_report;
list_for_each_entry(retreport, profile->failed_reports, list) {
if(!j && isnext) {
j = 1;
continue;
}
json_string = json_tokener_parse(retreport->freport);
json_object_array_add(json_array, json_string);
}
new_report :
if(new_report) {
json_string = json_tokener_parse(new_report);
json_object_array_add(json_array, json_string);
}
msgout = (char *)json_object_to_json_string_ext(json_obj, JSON_C_TO_STRING_PRETTY);
*report = strdup(msgout);
json_object_put(json_obj);
}
static void create_report_json(char *new_report, char **report)
{
json_object *json_obj, *json_array, *json_string;
char *msgout = NULL;
json_obj = json_object_new_object();
json_array = json_object_new_array();
json_object_object_add(json_obj,"Report", json_array);
if(new_report) {
json_string = json_tokener_parse(new_report);
json_object_array_add(json_array, json_string);
}
msgout = (char *)json_object_to_json_string_ext(json_obj, JSON_C_TO_STRING_PRETTY);
*report = strdup(msgout);
json_object_put(json_obj);
}
int create_json_bulkdata_report(struct profile *profile, char **report)
{
/*
* create json msg of current report
* parse failed reports list and add it to the report
* then add new report to the report
*/
char *msgout;
profile->new_report = NULL;
if(strcmp(profile->json_encoding_report_format, "objecthierarchy") == 0) {
create_json_bulkdata_report_object_hierarchy(profile, &msgout);
} else if(strcmp(profile->json_encoding_report_format, "namevaluepair") == 0) {
create_json_bulkdata_report_name_value_pair(profile, &msgout);
}
if(profile->nbre_of_retained_failed_reports != 0) {
if(profile->nbre_failed_reports >= profile->nbre_of_retained_failed_reports && profile->nbre_of_retained_failed_reports > 0)
add_failed_reports_to_report_json(profile, msgout, report, 1);
else
add_failed_reports_to_report_json(profile, msgout, report, 0);
} else {
create_report_json(msgout, report);
}
append_string_to_string(msgout, &profile->new_report);
FREE(msgout);
return 0;
}
int create_csv_bulkdata_report(struct profile *profile, char **report)
{
/*
* create csv msg of current report
* parse failed reports list and add it to the report
*/
int i;
struct resultsnode *p;
char *str1 = NULL, *str2 = NULL, *str = NULL, *paramprofilename, *timestamp = NULL, *type = NULL, rowseparator = '\0', separator = '\0';
if(strcmp(profile->csv_encoding_row_separator, "&#10;") == 0)
rowseparator = '\n';
else if(strcmp(profile->csv_encoding_row_separator, "&#13;") == 0)
rowseparator = '\r';
if(profile->csv_encoding_field_separator)
separator = profile->csv_encoding_field_separator[0];
get_time_stamp(profile->csv_encoding_row_time_stamp, &timestamp);
/*
* Create header ReportTimestamp,ParameterName,ParameterValue,ParameterType in case of ParameterPerRow
*/
if(strcmp(profile->csv_encoding_report_format, "row") == 0) {
if(timestamp == NULL)
asprintf(&str, "ParameterName%cParameterValue%cParameterType%c", separator, separator, rowseparator);
else
asprintf(&str, "ReportTimestamp%cParameterName%cParameterValue%cParameterType%c", separator, separator, separator, rowseparator);
append_string_to_string(str, report);
FREE(str);
if(profile->nbre_of_retained_failed_reports != 0) {
if(profile->nbre_failed_reports >= profile->nbre_of_retained_failed_reports && profile->nbre_of_retained_failed_reports > 0)
add_failed_reports_to_report_csv(profile, report, 1);
else
add_failed_reports_to_report_csv(profile, report, 0);
}
}
if(strcmp(profile->csv_encoding_report_format, "column") == 0 && timestamp != NULL) {
if(profile->nbre_of_retained_failed_reports != 0) {
if(profile->nbre_failed_reports >= profile->nbre_of_retained_failed_reports && profile->nbre_of_retained_failed_reports > 0)
add_failed_reports_to_report_csv(profile, report, 1);
else
add_failed_reports_to_report_csv(profile, report, 0);
}
append_string_to_string("ReportTimestamp", &str1);
append_string_to_string(timestamp, &str2);
}
/*
* Add New reports
*/
profile->new_report = NULL;
for(i = 0; i < profile->profile_parameter_number; i++) {
LIST_HEAD(results_list);
bulkdata_get_value_results(profile->profile_parameter[i].reference, &results_list);
list_for_each_entry(p, &results_list, list) {
paramprofilename = get_bulkdata_profile_parameter_name(profile->profile_parameter[i].reference, profile->profile_parameter[i].name, p->name);
if(strcmp(profile->csv_encoding_report_format, "row") == 0) {
type = strstr(p->type, ":");
if(timestamp == NULL)
asprintf(&str, "%s%c%s%c%s%c", paramprofilename, separator, p->data, separator, type+1, rowseparator);
else
asprintf(&str, "%s%c%s%c%s%c%s%c", timestamp, separator, paramprofilename, separator, p->data, separator, type+1, rowseparator);
append_string_to_string(str, report);
append_string_to_string(str, &profile->new_report);
FREE(str);
} else if(strcmp(profile->csv_encoding_report_format, "column") == 0) {
if(str1 == NULL || strlen(str1) <= 0)
asprintf(&str, "%s", paramprofilename);
else
asprintf(&str, "%c%s", separator, paramprofilename);
append_string_to_string(str, &str1);
FREE(str);
if(str2 == NULL || strlen(str2) <= 0)
asprintf(&str, "%s", p->data);
else
asprintf(&str, "%c%s", separator, p->data);
append_string_to_string(str, &str2);
FREE(str);
}
FREE(paramprofilename);
}
bulkdata_free_data_from_list(&results_list);
}
if(strcmp(profile->csv_encoding_report_format, "column") == 0) {
asprintf(&str, "%c", rowseparator);
append_string_to_string(str, &str1);
append_string_to_string(str, &str2);
append_string_to_string(str1, report);
append_string_to_string(str2, report);
append_string_to_string(str1, &profile->new_report);
append_string_to_string(str2, &profile->new_report);
}
FREE(str);
FREE(str1);
FREE(str2);
FREE(timestamp);
return 0;
}
static void create_json_failed_report(struct profile *profile, char **report)
{
add_failed_reports_to_report_json(profile, NULL, report, 0);
}
static void create_csv_failed_report(struct profile *profile, char **report)
{
char rowseparator = '\0', separator = '\0', *timestamp = NULL;
if(strcmp(profile->csv_encoding_row_separator, "&#10;") == 0) {
rowseparator = '\n';
} else if(strcmp(profile->csv_encoding_row_separator, "&#13;") == 0) {
rowseparator = '\r';
}
if(profile->csv_encoding_field_separator)
separator = profile->csv_encoding_field_separator[0];
get_time_stamp(profile->csv_encoding_row_time_stamp, &timestamp);
if(strcmp(profile->csv_encoding_report_format, "row") == 0) {
if(timestamp == NULL)
asprintf(report, "ParameterName%cParameterValue%cParameterType%c", separator, separator, rowseparator);
else
asprintf(report, "ReportTimestamp%cParameterName%cParameterValue%cParameterType%c", separator, separator, separator, rowseparator);
}
add_failed_reports_to_report_csv(profile, report, 0);
}
void create_encoding_bulkdata_report(struct profile *profile, char **report)
{
if(strcasecmp(profile->encoding_type, "json") == 0) {
create_json_bulkdata_report(profile, report);
} else if(strcasecmp(profile->encoding_type, "csv") == 0) {
create_csv_bulkdata_report(profile, report);
}
}
void create_failed_report(struct profile *profile, char **report)
{
if(strcasecmp(profile->encoding_type, "json") == 0) {
create_json_failed_report(profile, report);
} else if(strcasecmp(profile->encoding_type, "csv") == 0) {
create_csv_failed_report(profile, report);
}
}

View File

@@ -1,24 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
* Author: Omar Kallel <omar.kallel@pivasoftware.com>
*
*/
#ifndef __REPORT_H_
#define __REPORT_H_
#include <json-c/json.h>
#include "common.h"
#include "times.h"
#include "config.h"
void create_encoding_bulkdata_report(struct profile *profile, char **report);
void create_failed_report(struct profile *profile, char **report);
#endif /* __REPORT_H_ */

View File

@@ -1,62 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "times.h"
const char *bulkdata_get_time(void)
{
static char local_time[64];
time_t t_time = time(NULL);
struct tm *t_tm = localtime(&t_time);
if (t_tm == NULL)
return NULL;
if (strftime(local_time, sizeof(local_time),"Date: %a, %d %b %Y %X%z GMT", t_tm) == 0)
return NULL;
return local_time;
}
void get_time_stamp(const char *format, char **timestamp)
{
time_t now = time(NULL);
if (strcmp(format, "unix") == 0) {
asprintf(timestamp, "%ld", now);
} else if (strcmp(format, "iso8601") == 0) {
char buf[32] = {0};
struct tm *ts = localtime(&now);
strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%Z", ts);
asprintf(timestamp, "%s", buf);
} else
timestamp = NULL;
}
unsigned int get_next_period(time_t time_reference, int reporting_interval)
{
unsigned int next_period;
time_t now = time(NULL);
if (now > time_reference)
next_period = reporting_interval - ((now - time_reference) % reporting_interval);
else
next_period = (time_reference - now) % reporting_interval;
if (next_period == 0)
next_period = reporting_interval;
return next_period;
}

View File

@@ -1,19 +0,0 @@
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Copyright (C) 2020 iopsys Software Solutions AB
* Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
*
*/
#ifndef __TIMES_H
#define __TIMES_H
const char *bulkdata_get_time(void);
void get_time_stamp(const char *format, char **timestamp);
unsigned int get_next_period(time_t time_reference, int reporting_interval);
#endif /* __TIMES_H */

38
bulut/Makefile Normal file
View File

@@ -0,0 +1,38 @@
#
# Copyright (C) 2019 IOPSYS
#
include $(TOPDIR)/rules.mk
PKG_NAME:=bulut
PKG_VERSION:=0.2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/bulut/bulut-gw-client.git
PKG_SOURCE_VERSION:=227700c44817afa2c392fa08bf4cf70fa6177f01
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/bulut
CATEGORY:=Utilities
DEPENDS:=
TITLE:=bulut
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include
define Package/bulut/description
obuspa keys
endef
define Package/bulut/install
$(CP) $(PKG_BUILD_DIR)/files/* $(1)/
endef
$(eval $(call BuildPackage,bulut))

81
crun/Makefile Normal file
View File

@@ -0,0 +1,81 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=crun
PKG_VERSION:=0.20
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/containers/crun.git
PKG_SOURCE_DATE:=2021-06-07
PKG_SOURCE_VERSION:=8d6a8b5ab80461cfed19f020a36584af13c32038
PKG_MIRROR_HASH:=9ca1f0e530b33ce8820bd03329eb6731c5050d6e7f35bd2463d9a81cc00382e0
PKG_BUILD_DEPENDS:=argp-standalone
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_MAINTAINER:=Oskari Rauta <oskari.rauta@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/package.mk
define Package/crun
SECTION:=utils
CATEGORY:=Utilities
TITLE:=crun
URL:=https://github.com/containers/crun
DEPENDS:=@!arc +libseccomp +libcap
endef
define Package/crun/description
A fast and low-memory footprint OCI Container Runtime fully written in C.
endef
CONFIGURE_ARGS+= \
--disable-systemd \
--enable-embedded-yajl \
--enable-caps \
--enable-dl \
--enable-seccomp \
--enable-bpf
define Build/Prepare
$(call Build/Prepare/Default)
$(SED) '/#include <git-version.h>/d' $(PKG_BUILD_DIR)/src/crun.c
endef
define Build/Configure
$(call Build/Configure/Default)
$(SED) '/#define PACKAGE \"/d' $(PKG_BUILD_DIR)/config.h
$(SED) '/#define VERSION \"/d' $(PKG_BUILD_DIR)/config.h
$(SED) '/#define GIT_VERSION \"/d' $(PKG_BUILD_DIR)/config.h
$(SED) '/#define PACKAGE_BUGREPORT \"/d' $(PKG_BUILD_DIR)/config.h
$(SED) '/#define PACKAGE_NAME \"/d' $(PKG_BUILD_DIR)/config.h
$(SED) '/#define PACKAGE_STRING \"/d' $(PKG_BUILD_DIR)/config.h
$(SED) '/#define PACKAGE_TARNAME \"/d' $(PKG_BUILD_DIR)/config.h
$(SED) '/#define PACKAGE_VERSION \"/d' $(PKG_BUILD_DIR)/config.h
echo "#define PACKAGE \"$(PKG_NAME)\"" >> $(PKG_BUILD_DIR)/config.h
echo "#define VERSION \"$(PKG_VERSION)\"" >> $(PKG_BUILD_DIR)/config.h
echo "#define PACKAGE_NAME \"$(PKG_NAME)\"" >> $(PKG_BUILD_DIR)/config.h
echo "#define PACKAGE_VERSION \"$(PKG_VERSION)\"" >> $(PKG_BUILD_DIR)/config.h
echo "#define PACKAGE_STRING \"$(PKG_NAME) $(PKG_VERSION)\"" >> $(PKG_BUILD_DIR)/config.h
echo "#define PACKAGE_TARNAME \"$(PKG_NAME)\"" >> $(PKG_BUILD_DIR)/config.h
echo "#define PACKAGE_BUGREPORT \"bugs@openwrt.org\"" >> $(PKG_BUILD_DIR)/config.h
echo "#define GIT_VERSION \"$(PKG_SOURCE_VERSION)\"" >> $(PKG_BUILD_DIR)/config.h
endef
define Package/crun/install
$(INSTALL_DIR) $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/crun $(1)/usr/bin/
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrun.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,crun))

62
dectmngr/Makefile Normal file
View File

@@ -0,0 +1,62 @@
#
# Copyright (C) 2021 IOPSYS Software Solutions AB
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=dectmngr
PKG_RELEASE:=3
PKG_VERSION:=3.1.9
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=3d13dfba69e6a1f6ed1f14e0d8d502cb574d350e
PKG_MIRROR_HASH:=skip
endif
PKG_LICENSE:=PROPRIETARY
PKG_LICENSE_FILES:=LICENSE
RSTRIP:=true
export BUILD_DIR
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
CATEGORY:=Utilities
TITLE:=DECT Manager
DEPENDS:= +libubox +ubus
endef
define Package/$(PKG_NAME)/description
DECT manager is a daemon that provides UBUS RPC objects and sends UBUS events for communication with the DECT chip.
endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
rsync -av --exclude=.* ~/git/voip/dectmngr/* $(PKG_BUILD_DIR)/
endef
endif
MAKE_FLAGS += \
CFLAGS+="-Wall"
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc
$(INSTALL_BIN) $(PKG_BUILD_DIR)/app/dectmngr $(1)/usr/sbin/
$(STRIP) $(1)/usr/sbin/dectmngr
$(CP) ./files/etc/* $(1)/etc/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -0,0 +1,76 @@
#!/bin/sh /etc/rc.common
source /lib/functions/uci-defaults.sh
START=70
STOP=12
USE_PROCD=1
NAME=dectmngr
PROG=/usr/sbin/dectmngr
LOG_PATH=/var/log/dectmngr
DB_PATH=/etc/dect
# Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process.
stop_and_wait_dectmngr() {
pidof $NAME && killall -q $NAME
pidof $NAME && sleep 2 # wait for the process to stop gracefully
while pidof $NAME; do
killall -q -9 $NAME
sleep 1
done
}
start_service() {
local opt_ext=
local rfpi=
local model_id=
test $(db get hw.board.hasDect) = "0" && return
echo 1 > /sys/class/gpio/gpio14/value
rfpi=$(db -q get hw.board.dect_rfpi)
[ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_ext="$opt_ext -rfpi $rfpi"
# model_id=$(db -q get hw.board.dect_model_id)
# Setting model_id to 0x010203 is a workaround to reduce synchronisation time of some handset
# TODO: remove below line and uncomment the line above to get value from db when the problem is solved
model_id="01.02.03"
[ -n "$model_id" -a ${#model_id} -eq 8 ] && opt_ext="$opt_ext -model $model_id"
procd_open_instance
procd_set_param command $PROG -comname ttyH0 -log $LOG_PATH/dect-cmbs.log $opt_ext
procd_set_param respawn 6 2 3
procd_set_param term_timeout 20
procd_set_param triggers asterisk
procd_close_instance
}
stop_service() {
test $(db get hw.board.hasDect) = "0" && return
echo 0 > /sys/class/gpio/gpio14/value
stop_and_wait_dectmngr
}
reload_service() {
stop_and_wait_dectmngr
start
}
service_triggers()
{
procd_add_reload_trigger asterisk
}
boot() {
echo 14 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio14/direction
[ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH
[ ! -d $DB_PATH ] && mkdir -p $DB_PATH
start
}

View File

@@ -1,56 +0,0 @@
#
# Copyright (C) 2019 iopsys Software Solutions AB
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_RELEASE:=1
PKG_VERSION:=1.3.0
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=2c8990fd5275d469e8ab6c7a99e17fe0a56052ea
PKG_NAME:=dectmngr2
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
export BUILD_DIR
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/dectmngr2
CATEGORY:=Utilities
TITLE:=Dectmngr2
URL:=
DEPENDS:= +natalie-dect-h bcmkernel +libubox +ubus +libpicoevent endptmngr
endef
define Package/dectmngr2/description
Dectmngr2
endef
define Package/dectmngr2/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/dect/
$(INSTALL_DIR) $(1)/etc/config/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_DIR) $(1)/etc/uci-defaults/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/dectmngr2 $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/target.bin $(1)/etc/dect/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/nvs_default $(1)/etc/dect/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/dect $(1)/etc/init.d/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/dectmngr-wrapper.sh $(1)/usr/sbin/
$(CP) ./files/dect.config $(1)/etc/config/dect
$(CP) ./files/etc/uci-defaults/* $(1)/etc/uci-defaults/
endef
$(eval $(call BuildPackage,dectmngr2))

View File

@@ -1,4 +0,0 @@
config dect 'dect'
option radio 'auto'

View File

@@ -1,23 +0,0 @@
#!/bin/sh
# Workaround for product DG400 which has an
# incorrect value in nvram from factory.
if [ -e "/proc/nvram/BoardId" ]; then
boardid=$(cat /proc/nvram/BoardId)
ulBoardStuffOption=$(cat /proc/nvram/ulBoardStuffOption)
if [ "$boardid" = "DG400R0" -a "$ulBoardStuffOption" = "0xffffffff" ]; then
echo "0xfffffff2" >/proc/nvram/ulBoardStuffOption
db -q batch <<-EOT
set hw.board.has_dect=1
commit hw.board
EOT
fi
fi
exit 0

View File

@@ -8,14 +8,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dslmngr
PKG_VERSION:=1.1.0
PKG_VERSION:=1.1.1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=400cc66081f2b10b481d5a745bc505b78af098bd
PKG_SOURCE_VERSION:=b7aa02e86a383e2f9eedd1333b2148270daf5242
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dslmngr.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -43,7 +44,7 @@ define Package/dslmngr
SECTION:=utils
CATEGORY:=Utilities
TITLE:=XDSL status and configration utility
DEPENDS:=+libdsl +libuci +libubox +ubus +libpthread +libnl-genl
DEPENDS:=+libdsl +libuci +libubox +ubus +libpthread +libnl-genl +libeasy
endef
define Package/dslmngr/description

View File

@@ -11,6 +11,7 @@ PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git@dev.iopsys.eu:iopsys/easy-soc-events.git
PKG_SOURCE_VERSION:=5c582b0165b574dc94e4865f82e0bb91fa561754
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/easy-soc-events-$(PKG_VERSION)
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>

View File

@@ -1,23 +1,5 @@
if (PACKAGE_libwifi || PACKAGE_libdsl || PACKAGE_libethernet)
menu "configurations"
# libeasy configuration
config IOP_LLA_LIBS_DEBUG
bool "Enable debugging support"
config LIBWIFI_USE_CTRL_IFACE
bool "Use UNIX sockets"
default n
config LIBWIFI_DEBUG
depends on PACKAGE_libwifi
bool "Enable wifi debugging"
default n
config LIBDSL_DEBUG
depends on PACKAGE_libdsl
bool "Enable xdsl debugging"
default n
config LIBDSL_TEST
depends on PACKAGE_libdsl
bool "Libdsl test program"
default n
endmenu
endif

View File

@@ -7,16 +7,17 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=easy-soc-libs
PKG_VERSION:=6.0.2
PKG_VERSION:=6.2.33
PKG_RELEASE:=1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=fee575f414324c68d0916fab06d10eccb78541fd
PKG_SOURCE_VERSION:=5c2f2f46843ac6f02613cdfcd0a901033d6882c7
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/easy-soc-libs.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -29,48 +30,21 @@ include $(INCLUDE_DIR)/package.mk
define Package/easy-soc-libs
SECTION:=libs
CATEGORY:=Libraries
TITLE:=IOPSYS easy SoC libraries
SUBMENU:=IOPSYS easy SoC libraries
TITLE:=IOPSYS Easy SoC libraries
SUBMENU:=IOPSYS Easy SoC libraries
DEPENDS:=+libopenssl
MENU:=1
endef
define Package/libwifi/config
source "$(SOURCE)/Config.in"
endef
define Package/libeasy
$(call Package/easy-soc-libs)
TITLE:= Common helper functions library (libeasy)
DEPENDS+=+libnl +libnl-route
endef
define Package/libwifi
$(call Package/easy-soc-libs)
TITLE:= WiFi library (libwifi)
DEPENDS+=+libnl +libnl-route +libeasy
endef
define Package/libethernet
$(call Package/easy-soc-libs)
TITLE:= Ethernet library (libethernet)
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_iopsys_ramips:swconfig
endef
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
TARGET_PLATFORM=BROADCOM
CHIP_ID=$(patsubst "%",%,$(CONFIG_BCM_CHIP_ID))
TARGET_CFLAGS +=-DIOPSYS_BROADCOM -DCHIP_$(CHIP_ID) -DCONFIG_BCM9$(CHIP_ID) \
-I$(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx
-I$(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx \
-I$(STAGING_DIR)/usr/include/bcm963xx/userspace/public/include
else ifeq ($(CONFIG_TARGET_iopsys_ramips),y)
TARGET_PLATFORM=MEDIATEK
TARGET_CFLAGS +=-DIOPSYS_MEDIATEK
else ifeq ($(CONFIG_TARGET_iopsys_linksys),y)
TARGET_PLATFORM=MARVELL
TARGET_CFLAGS +=-DIOPSYS_MARVELL
else ifeq ($(CONFIG_TARGET_intel_mips),y)
TARGET_PLATFORM=INTEL
TARGET_CFLAGS +=-DIOPSYS_INTEL
else ifeq ($(CONFIG_TARGET_iopsys_x86),y)
TARGET_PLATFORM=TEST
TARGET_CFLAGS +=-DIOPSYS_TEST
@@ -78,26 +52,30 @@ else ifeq ($(CONFIG_TARGET_iopsys_armvirt),y)
TARGET_PLATFORM=TEST
TARGET_CFLAGS +=-DIOPSYS_TEST
else
$(info Unexpected CONFIG_TARGET)
$(info Unexpected CONFIG_TARGET, use default MAC80211)
TARGET_PLATFORM=MAC80211
TARGET_CFLAGS +=-DIOPSYS_MAC80211
endif
export TARGET_PLATFORM
ifdef CONFIG_IOP_LLA_LIBS_DEBUG
TARGET_CFLAGS += -DIOP_LLA_LIBS_DEBUG
endif
define Package/libdsl
$(call Package/easy-soc-libs)
TITLE:= XDSL library (libdsl)
DEPENDS+=+TARGET_intel_mips:dsl-cpe-api-vrx +TARGET_intel_mips:dsl-cpe-fapi +TARGET_intel_mips:kmod-ppa-drv
endef
subdirs := \
$(if $(CONFIG_PACKAGE_libeasy),libeasy) \
$(if $(CONFIG_PACKAGE_libwifi),libwifi) \
$(if $(CONFIG_PACKAGE_libdsl),libdsl) \
$(if $(CONFIG_PACKAGE_libethernet),libethernet)
$(if $(CONFIG_PACKAGE_libethernet),libethernet) \
$(if $(CONFIG_PACKAGE_libqos),libqos)
EASY_SOC_LIBS := \
libeasy \
libwifi \
libdsl \
libethernet \
libqos
ifeq ($(CONFIG_LIBWIFI_USE_CTRL_IFACE),y)
TARGET_CFLAGS +=-DLIBWIFI_USE_CTRL_IFACE
endif
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
@@ -117,79 +95,36 @@ define Build/Prepare
endef
endif
define Build/InstallDev/libeasy
$(INSTALL_DIR) $(1)/usr/include/easy
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libeasy/easy.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/event.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/utils.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/debug.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/libeasy*.so* $(1)/usr/lib/
endef
include easy.mk
include wifi.mk
include dsl.mk
include ethernet.mk
include qos.mk
define Build/InstallDev/libwifi
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libwifi/wifi.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libwifi/libwifi*.so* $(1)/usr/lib/
ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),\
$(PKG_BUILD_DIR)/.config_$(patsubst "%",%,$(CONFIG_TARGET_PROFILE)))
define Build/Compile/rebuild
$(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.so\* | $(XARGS) rm -f;
$(if $(wildcard $(PKG_BUILD_DIR)/config_*), \
rm -f $(PKG_BUILD_DIR)/.config_*)
endef
endif
define Build/InstallDev/libdsl
$(INSTALL_DIR) $(1)/usr/include/xdsl
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libdsl/xdsl.h $(1)/usr/include/xdsl
$(CP) $(PKG_BUILD_DIR)/libdsl/xtm.h $(1)/usr/include/xdsl
$(CP) $(PKG_BUILD_DIR)/libdsl/common.h $(1)/usr/include/xdsl
$(CP) $(PKG_BUILD_DIR)/libdsl/libdsl.so* $(1)/usr/lib/
endef
define Build/InstallDev/libethernet
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libethernet/ethernet.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libethernet/libethernet.so $(1)/usr/lib/
endef
STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell echo $(TARGET_CFLAGS) | mkhash md5)
define Build/Compile
$(Build/Compile/rebuild)
touch $(PKG_BUILD_DIR)/.config_$(CONFIG_TARGET_PROFILE)
$(call Build/Compile/Default)
ifeq ($(CONFIG_LIBDSL_TEST),y)
$(MAKE) -C "$(PKG_BUILD_DIR)/libdsl/test" $(MAKE_FLAGS)
endif
$(foreach dir,$(subdirs),$(call Build/Compile/$(dir)))
endef
define Build/InstallDev
$(foreach dir,$(subdirs),$(call Build/InstallDev/$(dir),$(1),$(2));)
endef
define Package/libeasy/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libeasy/libeasy*.so* $(1)/usr/lib/
endef
define Package/libwifi/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libwifi/libwifi*.so* $(1)/usr/lib/
endef
define Package/libethernet/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libethernet/libethernet.so* $(1)/usr/lib/
endef
define Package/libdsl/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_BUILD_DIR)/libdsl/libdsl.so* $(1)/usr/lib/
ifeq ($(CONFIG_LIBDSL_TEST),y)
$(CP) $(PKG_BUILD_DIR)/libdsl/test/libdsl_test $(1)/usr/bin/
endif
endef
define Package/easy-soc-libs/install
:
endef
$(eval $(call BuildPackage,libeasy))
$(eval $(call BuildPackage,libwifi))
$(eval $(call BuildPackage,libdsl))
$(eval $(call BuildPackage,libethernet))
$(eval $(foreach e,$(EASY_SOC_LIBS),$(call BuildPackage,$(e))))

44
easy-soc-libs/dsl.mk Normal file
View File

@@ -0,0 +1,44 @@
define Package/libdsl
$(call Package/easy-soc-libs)
TITLE:= xDSL library (libdsl)
endef
define Package/libdsl/config
if PACKAGE_libdsl
config LIBDSL_DEBUG
depends on PACKAGE_libdsl
bool "Enable dsl debugging"
default n
config LIBDSL_TEST
depends on PACKAGE_libdsl
bool "Enable dsl test program"
default n
endif
endef
define Build/InstallDev/libdsl
$(INSTALL_DIR) $(1)/usr/include/xdsl
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libdsl/xdsl.h $(1)/usr/include/xdsl
$(CP) $(PKG_BUILD_DIR)/libdsl/xtm.h $(1)/usr/include/xdsl
$(CP) $(PKG_BUILD_DIR)/libdsl/common.h $(1)/usr/include/xdsl
$(CP) $(PKG_BUILD_DIR)/libdsl/libdsl.so* $(1)/usr/lib/
endef
ifeq ($(CONFIG_LIBDSL_TEST),y)
define Build/Compile/libdsl
$(MAKE) -C "$(PKG_BUILD_DIR)/libdsl/test" $(MAKE_FLAGS)
endef
endif
define Package/libdsl/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_BUILD_DIR)/libdsl/libdsl.so* $(1)/usr/lib/
ifeq ($(CONFIG_LIBDSL_TEST),y)
$(CP) $(PKG_BUILD_DIR)/libdsl/test/libdsl_test $(1)/usr/bin/
endif
endef

28
easy-soc-libs/easy.mk Normal file
View File

@@ -0,0 +1,28 @@
define Package/libeasy
$(call Package/easy-soc-libs)
TITLE:= Common helper functions library (libeasy)
DEPENDS+=+libnl +libnl-route
endef
define Package/libeasy/config
source "$(SOURCE)/Config.in"
endef
define Build/InstallDev/libeasy
$(INSTALL_DIR) $(1)/usr/include/easy
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libeasy/easy.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/event.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/utils.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/if_utils.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/debug.h $(1)/usr/include/easy/
$(CP) $(PKG_BUILD_DIR)/libeasy/libeasy*.so* $(1)/usr/lib/
endef
define Package/libeasy/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libeasy/libeasy*.so* $(1)/usr/lib/
endef

27
easy-soc-libs/ethernet.mk Normal file
View File

@@ -0,0 +1,27 @@
define Package/libethernet
$(call Package/easy-soc-libs)
TITLE:= Ethernet library (libethernet)
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_iopsys_ramips:swconfig
endef
define Package/libethernet/config
config LIBETHERNET_DEBUG
depends on PACKAGE_libethernet
bool "Enable ethernet debugging"
default n
endef
define Build/InstallDev/libethernet
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libethernet/ethernet.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libethernet/libethernet.so $(1)/usr/lib/
endef
define Package/libethernet/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libethernet/libethernet.so* $(1)/usr/lib/
endef

27
easy-soc-libs/qos.mk Normal file
View File

@@ -0,0 +1,27 @@
define Package/libqos
$(call Package/easy-soc-libs)
TITLE:= QoS library (libqos)
DEPENDS+=+libnl +libnl-route +libeasy
endef
define Package/libqos/config
config LIBQOS_DEBUG
depends on PACKAGE_libqos
bool "Enable qos debugging"
default n
endef
define Build/InstallDev/libqos
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libqos/qos.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libqos/libqos.so $(1)/usr/lib/
endef
define Package/libqos/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libqos/libqos*.so* $(1)/usr/lib/
endef

29
easy-soc-libs/wifi.mk Normal file
View File

@@ -0,0 +1,29 @@
define Package/libwifi
$(call Package/easy-soc-libs)
TITLE:= WiFi library (libwifi)
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_iopsys_brcm63xx_arm:bcmkernel
endef
define Package/libwifi/config
if PACKAGE_libdsl
config LIBWIFI_DEBUG
depends on PACKAGE_libwifi
bool "Enable wifi debugging"
default n
endif
endef
define Build/InstallDev/libwifi
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libwifi/wifi.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libwifi/libwifi*.so* $(1)/usr/lib/
endef
define Package/libwifi/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libwifi/libwifi*.so* $(1)/usr/lib/
endef

View File

@@ -6,26 +6,18 @@
#
include $(TOPDIR)/rules.mk
PKG_RELEASE:=1
PKG_VERSION:=0.4
PKG_SOURCE_VERSION:=d87c1def50d9672dbeb9d5972f36a364b29334b9
PKG_NAME:=endptmngr
PKG_VERSION:=0.5
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
PKG_SOURCE_VERSION:=f50a507a1a8d1dbf83ecf1e5f27dc18a318ef492
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
ifeq ($(CONFIG_ENDPT_OPEN),y)
BRCM_KERNEL_PROFILE=$(shell echo $(CONFIG_BCM_KERNEL_PROFILE) | sed s/\"//g)
PKG_SOURCE:=endptmngr-$(BRCM_KERNEL_PROFILE)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_URL:=https://download.iopsys.eu/iopsys/opensdk/
PKG_NAME:=endptmngr-open
PATCH_DIR:=
PKG_HASH:=skip
else
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
PKG_SOURCE_PROTO:=git
PKG_NAME:=endptmngr
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
endif
export BUILD_DIR
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
@@ -33,15 +25,10 @@ PKG_BUILD_PARALLEL:=1
# All config variable that are passed to the make invocation, directly or
# indirectly. This ensures that the package is rebuilt on config-changes.
PKG_CONFIG_DEPENDS := \
CONFIG_TARGET_BOARD
PKG_CONFIG_DEPENDS:=CONFIG_TARGET_BOARD
export CONFIG_BRCM_SDK_VER_504001
export CONFIG_BRCM_SDK_VER_504002
export CONFIG_BRCM_SDK_VER_504003
export CONFIG_BRCM_SDK_VER_504004
export CONFIG_BRCM_SDK_VER_504005
export CONFIG_BCM_CHIP_ID
include $(INCLUDE_DIR)/package.mk
@@ -51,27 +38,18 @@ endef
define Package/endptmngr
CATEGORY:=Utilities
TITLE:=Brcmslic
TITLE:=Broadcom Voice Endpoint Manager
URL:=
DEPENDS:= +libubox +ubus +libpicoevent +bcmkernel @TARGET_HAS_VOICE @BCM_VOICE
DEPENDS:= +libubox +ubus +libpicoevent +uci +bcmkernel @TARGET_HAS_VOICE @BCM_VOICE
endef
define Package/endptmngr/description
endptmngr
endef
ifeq ($(CONFIG_ENDPT_OPEN),y)
define Build/Compile
endef
endif
define Package/endptmngr/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/init.d/
cp $(PKG_BUILD_DIR)/files/etc/init.d/* $(1)/etc/init.d/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/endptmngr $(1)/usr/sbin/
endef

View File

@@ -0,0 +1,25 @@
#!/bin/sh /etc/rc.common
START=68
STOP=12
USE_PROCD=1
NAME=endptmngr
start_service() {
procd_open_instance
procd_set_param env hw_board_hasDect=$(db get hw.board.hasDect)
procd_set_param command $NAME
procd_set_param respawn "5" "0" "3"
procd_set_param nice -12
procd_close_instance
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger asterisk
}

View File

@@ -5,13 +5,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ethmngr
PKG_VERSION:=1.0.4
PKG_VERSION:=2.0.1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b7135381aedf1bde6f7ab10b41be372a9bd7d155
PKG_SOURCE_VERSION:=5a0ff3bc7c49dcb05129f423ef8e0c4929f6aa03
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ethmngr.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE

51
fdtextract/Makefile Normal file
View File

@@ -0,0 +1,51 @@
#
# Copyright (C) 2021 IOPSYS Software Solutions AB
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=fdtextract
PKG_RELEASE:=1
PKG_VERSION:=1.0
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/fdtextract.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=573bf9543f8dc792b6d5dc8760cb69c64f11e932
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
RSTRIP:=true
export BUILD_DIR
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
CATEGORY:=Utilities
TITLE:=fdtextract
DEPENDS:= +libfdt
endef
define Package/$(PKG_NAME)/description
Command to extract sub images from FIT images.
endef
MAKE_FLAGS += \
CFLAGS+="-Wall"
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/fdtextract $(1)/usr/sbin/
$(STRIP) $(1)/usr/sbin/fdtextract
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -46,9 +46,10 @@ static ssize_t get_led_color(struct device *dev,
/* [ln] todo: dummy implementation */
int len;
len = sprintf(buf, "%d\n", 123);
len = scnprintf(buf, PAGE_SIZE, "%d\n", 123);
if (len <= 0) {
dev_err(dev, "sk9822: Invalid sprintf len: %d\n", len);
return -EIO;
}
return len;
@@ -99,8 +100,69 @@ static ssize_t set_led_color(struct device *dev,
}
static DEVICE_ATTR(led_color, S_IRUGO | S_IWUSR, get_led_color, set_led_color);
static ssize_t get_led_brightness(struct device *dev,
struct device_attribute *attr, char *buf)
{
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);
return -EIO;
}
return len;
}
/**
* @brief Set LED brightness
* @retval count number of bytes written
* @retval -EINVAL if the message is not a valid hexadecimal number
* @retval -EIO for all other errors (e.g. leds cannot be configured)
*/
static ssize_t set_led_brightness(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{
int ret = 0;
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;
}
if(val > SK9822_DEFAULT_BRIGHTNESS) {
val = SK9822_DEFAULT_BRIGHTNESS;
}
sk9822->led_brightness = (uint8_t)val;
// Now push to the HW
ret = sk9822_update(sk9822);
if (ret != 0) {
printk(KERN_ERR "Failed to update led\n");
return -EIO;
}
return count;
}
static DEVICE_ATTR(led_brightness, S_IRUGO | S_IWUSR, get_led_brightness, set_led_brightness);
static struct attribute *sk9822_dev_attrs[] = {
&dev_attr_led_color.attr,
&dev_attr_led_brightness.attr,
NULL
};

View File

@@ -1,9 +1,5 @@
if PACKAGE_icwmp
config CWMP_SCRIPTS_FULL
bool "Install all icwmp scripts"
default y
choice
prompt "Select ACS sever"
default CWMP_ACS_MULTI

View File

@@ -8,13 +8,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=6.3.2-2020-12-21
PKG_VERSION:=7.4.1-2021-07-05
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=495e905c30ac7423035a8c0c2c67effc0c607475
PKG_SOURCE_VERSION:=40b08ae2f1500a3a3c8029486c062738d4f49b67
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPLv2
@@ -37,7 +38,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=CWMP client
DEPENDS:=+libuci +libmicroxml +libubox +jshn +libubus +libblobmsg-json +libpthread +ubusd +shflags +getopt +zlib +libjson-c +libopenssl +curl +libcurl +libbbfdm +libbbf_api
DEPENDS:=+libuci +libmicroxml +libubox +jshn +libubus +libblobmsg-json +libpthread +ubusd +shflags +getopt +zlib +libjson-c +libopenssl +curl +libcurl
endef
define Package/$(PKG_NAME)/description
@@ -98,14 +99,7 @@ endif
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/etc/icwmpd
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_BUILD_DIR)/bin/icwmpd $(1)/usr/sbin
ifeq ($(CONFIG_CWMP_SCRIPTS_FULL),y)
$(INSTALL_DIR) $(1)/usr/share/icwmp
$(CP) $(PKG_BUILD_DIR)/scripts/defaults $(1)/usr/share/icwmp
$(CP) $(PKG_BUILD_DIR)/scripts/functions $(1)/usr/share/icwmp
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/icwmp.sh $(1)/usr/sbin/icwmp
endif
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/icwmpd $(1)/usr/sbin/
$(CP) ./files/* $(1)/
endef

View File

@@ -4,7 +4,7 @@ config acs 'acs'
option passwd 'iopsys'
option periodic_inform_enable 'true'
option periodic_inform_interval '1800'
option periodic_inform_time '0'
option periodic_inform_time '0001-01-01T00:00:00Z'
option ParameterKey ''
option dhcp_discovery 'enable'
# compression possible configs: GZIP, Deflate, Disabled
@@ -30,14 +30,12 @@ config cpe 'cpe'
option userid '' #$OUI-$SER
option passwd 'iopsys'
option port '7547'
option ubus_socket '/var/run/ubus.sock'
option provisioning_code ''
option amd_version '5'
# compression possible configs: InstanceNumber, InstanceAlias
option instance_mode 'InstanceNumber'
option session_timeout '60'
option notification '1'
option datamodel 'tr181'
option exec_download '0'
option periodic_notify_enable '1'
option periodic_notify_interval '10'

View File

@@ -11,9 +11,12 @@ STOP=10
USE_PROCD=1
PROG="/usr/sbin/icwmpd"
EXTRA_COMMANDS="notify"
EXTRA_HELP=" start [GetRPCMethods] Start icwmpd service and send GetRPCMethods"
log() {
echo "${@}"|logger -t cwmp.init -p info
}
validate_url() {
# SCHEMA_LIST: contain list of possible schemas that could be present in the acs url
# Example: SCHEMA_LIST="http https"
@@ -36,14 +39,14 @@ get_acs_url() {
if [ "$acs_dhcp_discovery" == "enable" -a -n "$dhcp_url" -o -z "$url" ]; then
url="$dhcp_url"
echo "ACS URL from DHCP server: $url"
log "ACS URL from DHCP server: $url"
[ -n "$url" ] && uci -P /var/state -q set cwmp.acs.url="$url" || url="$default_acs"
elif [ -n "$url" ];then
url="$(uci -q get cwmp.acs.url)"
echo "ACS URL from configuration: $url"
log "ACS URL from configuration: $url"
else
url="$default_acs"
echo "Using default ACS URL: $url"
log "Using default ACS URL: $url"
[ -n "$url" ] && uci -P /var/state -q set cwmp.acs.url="$url"
fi
@@ -109,7 +112,7 @@ wait_for_option43() {
if [ "$dhcp_discovery" == "enable" -o "$dhcp_discovery" == "1" ]
then
echo "Waiting for discovery of ACS URL from dhcp server ..."
log "Waiting for discovery of ACS URL from dhcp server ..."
while [ $tm -le $time ]
do
acs_url=`uci -P /var/state -q get cwmp.acs.dhcp_url`
@@ -156,29 +159,29 @@ start_service() {
touch /etc/icwmpd/.icwmpd_boot
touch /tmp/.icwmpd_boot
else
[ -f /sbin/netifd ] && echo "Waiting for Network to be started ..." && ubus -t 5 wait_for network.interface
[ -f /etc/config/wireless ] && echo "Waiting for WiFi to be started ..." && ubus -t 5 wait_for network.wireless
[ -f /usr/sbin/dnsmasq ] && echo "Waiting for DNS Proxy to be started ..." && ubus -t 5 wait_for dnsmasq
[ -f /etc/config/dhcp ] && echo "Waiting for DNS Server(s) ..." && wait_for_resolvfile 20
[ -f /usr/sbin/asterisk ] && echo "Waiting for Voice to be started ..." && ubus -t 5 wait_for asterisk
[ -f /sbin/netifd ] && log "Waiting for Network to be started ..." && ubus -t 5 wait_for network.interface
[ -f /etc/config/wireless ] && log "Waiting for WiFi to be started ..." && ubus -t 5 wait_for network.wireless
[ -f /usr/sbin/dnsmasq ] && log "Waiting for DNS Proxy to be started ..." && ubus -t 5 wait_for dnsmasq
[ -f /etc/config/dhcp ] && log "Waiting for DNS Server(s) ..." && wait_for_resolvfile 20
[ -f /usr/sbin/asterisk ] && log "Waiting for Voice to be started ..." && ubus -t 5 wait_for asterisk
config_load cwmp
set_wan_interface
wait_for_option43 20
get_acs_url
procd_open_instance
procd_open_instance icwmp
procd_set_param command "$PROG"
if [ "$1" = "GetRPCMethods" ];then
procd_append_param command -g
elif [ -f /etc/icwmpd/.icwmpd_boot ]; then
procd_append_param command -b
fi
procd_set_param respawn "3" "7" "0"
procd_set_param respawn \
${respawn_threshold:-5} \
${respawn_timeout:-10} ${respawn_retry:-3}
procd_close_instance
#procd_open_instance
#[ "$(uci -q get cwmp.cpe.notification)" == "1" ] && procd_append_param command "/usr/sbin/icwmp_notifd"
#procd_close_instance
fi
}
@@ -187,10 +190,6 @@ reload_service() {
start
}
notify() {
ubus -t 1 call tr069 notify >/dev/null 2>&1 &
}
service_triggers() {
procd_add_config_trigger "config.change" "cwmp" /etc/init.d/icwmpd reload
}

View File

@@ -1,29 +1,10 @@
if PACKAGE_ieee1905 || PACKAGE_lib1905al
if (PACKAGE_ieee1905)
menu "developer/debug options"
menu "Configurations"
config IEEE1905_MAP_COMPLETE_NETWORK
bool "Create network topology for complete network"
default n
config IEEE1905_EXTENSION_ALLOWED
bool "Allow plugins to extend 1905 CMDUs and/or TLVs"
default y
config IEEE1905_SPEED_UP_DISCOVERY
bool "Speed up discovery of an AL in network"
default y
config IEEE1905_DO_NOT_ACCEPT_UNAUTHENTICATED_COMMANDS
bool "Do not accept M1/M2 messages from unknown AL(s)"
default y
choice
prompt "Select ALME support"
default IEEE1905_ALME_OVER_UBUS
config IEEE1905_ALME_OVER_UBUS
bool "ALME methods supported over ubus"
#config IEEE1905_ALME_OVER_TCP
# bool "ALME server over TCP port"
endchoice
endmenu
endif

View File

@@ -1,141 +1,129 @@
#
# Copyright (C) 2019 Iopsys
# Copyright (C) 2021 IOPSYS
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905
PKG_VERSION:=2.1.32
PKG_VERSION:=3.3.2
LOCAL_DEV:=0
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=2bb1c564d31a99d80a3f977c1f817777722a601d
PKG_SOURCE_VERSION:=b7c3f2b45ff232415d32eb97badeb43845ae878d
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
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_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/ieee1905
define Package/ieee1905/Default
SECTION:=utils
CATEGORY:=Utilities
TITLE:=IEEE1905 daemon
DEPENDS:= +libuci +libjson-c +libieee1905 +ubox +libpcap +libopenssl +libwifi +libeasy
SUBMENU:=IEEE-1905.1 stack
endef
define Package/ieee1905/config
source "$(SOURCE)/Config.in"
endef
define Package/ieee1905/description
IEEE1905 stack with extended functionalities.
source "$(SOURCE)/Config.in"
endef
define Package/libieee1905
SECTION:=utils
CATEGORY:=Utilities
TITLE:=IEEE1905 cmdu tlv utility library
$(call Package/ieee1905/Default,$(1))
TITLE+= (library for CMDU and TLV handling)
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl +libwifi \
+libjson-c +libblobmsg-json
endef
define Package/libwsc
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Wifi Simple Configuration building and processing library
DEPENDS= +libopenssl +libuci +libubus
define Package/ieee1905
$(call Package/ieee1905/Default,$(1))
TITLE+= ieee1905d (daemon implementing 1905.1 and provides cli)
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl +libwifi \
+libjson-c +libblobmsg-json +libwifi +ubus +libpthread \
+libnl-genl +libieee1905
endef
define Package/lib1905hle
SECTION:=utils
CATEGORY:=Utilities
TITLE:=IEEE1905 hle stack library
define Package/map-plugin
$(call Package/ieee1905/Default,$(1))
TITLE:=Multi-AP (Easymesh) plugin
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl +libwifi \
+libjson-c +libblobmsg-json +ieee1905 +libieee1905
endef
LIBS := \
$(if $(CONFIG_PACKAGE_libwsc),libwsc.so)
define Package/ieee1905/description
This package provides IEEE Std 1905.1 stack.
endef
define Package/libieee1905/description
This package provides library functions for IEEE Std 1905.1 stack.
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE \
-fstrict-aliasing \
-Wall \
-Wextra
-I$(STAGING_DIR)/usr/include/libnl3 \
-D_GNU_SOURCE
MAKE_FLAGS += \
LIBS="$(LIBS)"
MAKE_PATH:=src
ifeq ($(CONFIG_IEEE1905_SPEED_UP_DISCOVERY),y)
TARGET_CFLAGS += -DSPEED_UP_DISCOVERY
endif
ifeq ($(CONFIG_IEEE1905_DO_NOT_ACCEPT_UNAUTHENTICATED_COMMANDS),y)
TARGET_CFLAGS += -DDO_NOT_ACCEPT_UNAUTHENTICATED_COMMANDS
endif
ifeq ($(CONFIG_IEEE1905_ALME_OVER_TCP),y)
TARGET_CFLAGS += -DALME_OVER_TCP
endif
ifeq ($(CONFIG_IEEE1905_ALME_OVER_UBUS),y)
TARGET_CFLAGS += -DALME_OVER_UBUS
endif
ifeq ($(CONFIG_IEEE1905_MAP_COMPLETE_NETWORK),y)
TARGET_CFLAGS += -DIEEE1905_MAP_COMPLETE_NETWORK
endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/ieee1905/* $(PKG_BUILD_DIR)/
endef
endif
define Package/ieee1905/install
$(INSTALL_DIR) $(1)/etc
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/ieee1905
$(INSTALL_DIR) $(1)/usr/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) ./files/etc/init.d/ieee1905 $(1)/etc/init.d/ieee1905
$(INSTALL_DATA) ./files/etc/config/ieee1905 $(1)/etc/config/ieee1905
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ieee1905d $(1)/usr/sbin/
endef
define Package/lib1905hle/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/lib1905hle.so $(1)/usr/lib/lib1905hle.so
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ieee1905d $(1)/usr/sbin/
endef
define Package/libieee1905/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/libieee1905.so $(1)/usr/lib/libieee1905.so
$(CP) $(PKG_BUILD_DIR)/src/libieee1905.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/src/libmidgen.so $(1)/usr/lib/
endef
define Package/libwsc/install
define Package/map-plugin/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/libwsc.so $(1)/usr/lib/libwsc.so
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/libmaputil.so $(1)/usr/lib/libmaputil.so
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map.so $(1)/usr/lib/ieee1905/map.so
endef
define Build/InstallDev/libwsc.so
define Build/InstallDev/map-plugin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map2.h $(1)/usr/include/map2.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map_module.h $(1)/usr/include/map_module.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map.so $(1)/usr/lib/ieee1905/map.so
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/libmaputil.so $(1)/usr/lib/libmaputil.so
endef
define Build/InstallDev/libieee1905
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libwsc/include/wsc.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/lib/libwsc.so $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/cmdu.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/1905_tlvs.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/i1905_wsc.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/bufutil.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/timer_impl.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/libmidgen.so $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/src/libieee1905.so $(1)/usr/lib/
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/include/ieee1905
$(INSTALL_DIR) $(1)/usr/include/ieee1905
$(INSTALL_DIR) $(1)/usr/include/lib1905hle
$(CP) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/ieee1905/
$(CP) $(PKG_BUILD_DIR)/libieee1905/include/*.h $(1)/usr/include/ieee1905/
$(CP) $(PKG_BUILD_DIR)/lib1905hle/include/*.h $(1)/usr/include/lib1905hle/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/libieee1905.so $(1)/usr/lib
$(foreach lib,$(LIBS),$(call Build/InstallDev/$(lib),$(1),$(2));)
$(call Build/InstallDev/libieee1905,$(1),$(2))
$(call Build/InstallDev/map-plugin,$(1),$(2))
endef
$(eval $(call BuildPackage,libieee1905))
$(eval $(call BuildPackage,lib1905hle))
$(eval $(call BuildPackage,libwsc))
$(eval $(call BuildPackage,ieee1905))
$(eval $(call BuildPackage,libieee1905))
$(eval $(call BuildPackage,map-plugin))

31
ieee1905/files/etc/config/ieee1905 Normal file → Executable file
View File

@@ -1,17 +1,22 @@
config ieee1905 'ieee1905'
option enabled '1'
option debug true
option debug_level 2
option macaddress 'auto'
option registrar 0
option cmdu_event 1
option map_plugin 1
option enabled '1'
option extension '1'
list extmodule 'map'
option registrar '2 5'
config security 'security'
list method 'PBC'
config ap
option band '2'
option ssid 'TestSSID.2'
option encryption 'psk2'
option key '5555500000'
config ap
option band '5'
option ssid 'TestSSID.5'
option encryption 'psk2'
option key '2222200000'
config al-iface
option enabled 1
option ifname 'br-lan'
option media 'bridge'
option enabled 1
option ifname 'br-lan'
option type 'bridge'

67
ieee1905/files/etc/init.d/ieee1905 Normal file → Executable file
View File

@@ -1,72 +1,25 @@
#!/bin/sh /etc/rc.common
START=96
STOP=22
STOP=21
USE_PROCD=1
PROG=/usr/sbin/ieee1905d
validate_ieee1905_section()
{
uci_validate_section ieee1905 ieee1905 "${1}" \
'debug:bool:false' \
'enabled:bool:false'
}
configure_ieee1905()
{
local enabled debug
validate_ieee1905_section ${1} || {
echo "Validation of ieee1905 section failed"
exit 1;
}
if [ ${debug} -eq 1 ]; then
# Forward stdout of the command to logd
procd_set_param stdout 1
# Same for stderr
procd_set_param stderr 1
fi
if [ ${enabled} -ne 1 ]; then
exit 0;
fi
}
configure_network()
{
ebtables -L FORWARD|grep -iqE "1:80:C2:(0)+:(0)+:13.*-j.*DROP"
if [ "$?" -ne 0 ]; then
echo "Applying drop rule to drop pkts forwared by kernel to 1905.1 multicast mac"
ebtables -A FORWARD -d 01:80:c2:00:00:13 -j DROP
fi
}
service_running() {
ubus -t 2 wait_for wifi
}
start_service() {
[ -d /usr/lib/ieee1905 ] || mkdir -p /usr/lib/ieee1905
procd_open_instance ieee1905
procd_set_param command ${PROG}
configure_ieee1905 "ieee1905"
configure_network
procd_open_instance
procd_set_param command "/usr/sbin/ieee1905d"
procd_set_param respawn
# procd_set_param stdout 1
# procd_set_param stderr 1
procd_close_instance
}
service_triggers()
{
procd_add_reload_trigger "ieee1905"
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "network"
procd_add_reload_trigger "wireless"
procd_add_reload_trigger "netmode"
procd_add_reload_trigger "ieee1905"
}

View File

@@ -5,15 +5,16 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=imonitor
PKG_VERSION:=1.0.0
PKG_VERSION:=1.0.1
PKG_RELEASE:=1
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_SOURCE_PROTO=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/imonitor.git
PKG_SOURCE_VERSION:=532f4900862bcb45d8cd4bf37555fabda81750b6
PKG_SOURCE_VERSION:=4beb1d5d6925507f1850a84c0b83aaf12a082f7f
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1

View File

@@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=inbd
PKG_VERSION:=1.0.1
PKG_VERSION:=1.2.2
PKG_RELEASE:=1
PKG_SOURCE_VERSION:=3135944f3357a7a2c1c206be7b65bbb7ac6d1e58
PKG_SOURCE_VERSION:=10f765f3d0fcc226b6ecf0c481598c9e7f76315e
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/inbd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@@ -6,7 +6,7 @@ CONFIG_DEVEL=y
CONFIG_PACKAGE_6in4=y
CONFIG_PACKAGE_6rd=y
CONFIG_PACKAGE_6to4=y
CONFIG_PACKAGE_alsa-lib=y
CONFIG_PACKAGE_at=y
CONFIG_PACKAGE_atftp=m
CONFIG_PACKAGE_atftpd=m
CONFIG_PACKAGE_bulkdata=y
@@ -19,16 +19,15 @@ CONFIG_PACKAGE_ds-lite=y
CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_getopt=y
CONFIG_PACKAGE_glib2=y
CONFIG_PACKAGE_gre=y
CONFIG_PACKAGE_icwmp=y
CONFIG_PACKAGE_ieee1905=y
CONFIG_PACKAGE_map-1905=y
CONFIG_PACKAGE_map-topology=y
CONFIG_PACKAGE_mosquitto-client-ssl=y
CONFIG_PACKAGE_mosquitto-ssl=y
CONFIG_PACKAGE_wfadatad=y
CONFIG_PACKAGE_imonitor=m
CONFIG_PACKAGE_inbd=y
CONFIG_PACKAGE_iopupgrade=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_ipset=y
@@ -37,23 +36,15 @@ CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
# CONFIG_PACKAGE_iwatchdog is not set
CONFIG_PACKAGE_juci=y
CONFIG_PACKAGE_juci-dnsmasq-dhcp=y
CONFIG_PACKAGE_juci-firewall-fw3=y
CONFIG_PACKAGE_juci-mod-status=y
CONFIG_PACKAGE_juci-mod-system=y
CONFIG_PACKAGE_juci-network-device=y
CONFIG_PACKAGE_juci-network-dsl=y
CONFIG_PACKAGE_juci-network-netifd=y
CONFIG_PACKAGE_juci-sysupgrade=y
CONFIG_PACKAGE_juci-wireless=y
CONFIG_PACKAGE_juci-theme-iopsys=y
CONFIG_PACKAGE_libdaemon=y
CONFIG_PACKAGE_libgmp=y
CONFIG_PACKAGE_libreadline=y
CONFIG_PACKAGE_jq=y
CONFIG_PACKAGE_libreswan=m
CONFIG_PACKAGE_libwifi=y
CONFIG_PACKAGE_lscpu=y
CONFIG_PACKAGE_luci-nginx=y
# CONFIG_LUCI_JSMIN is not set
# CONFIG_LUCI_CSSTIDY is not set
CONFIG_PACKAGE_luci-mod-dashboard=y
CONFIG_PACKAGE_luci-theme-openwrt-2020=y
CONFIG_PACKAGE_map=y
CONFIG_PACKAGE_miniupnpd=y
CONFIG_PACKAGE_mwan3=y
@@ -70,6 +61,7 @@ CONFIG_OPENSSL_WITH_COMPRESSION=y
CONFIG_PACKAGE_openvpn-easy-rsa=y
CONFIG_PACKAGE_openvpn-openssl=y
CONFIG_PACKAGE_owsd=y
CONFIG_PACKAGE_periodicstats=y
CONFIG_PACKAGE_peripheral_manager=y
CONFIG_PACKAGE_port-management=y
CONFIG_PACKAGE_ppp-mod-pppoa=y
@@ -86,24 +78,23 @@ CONFIG_PACKAGE_relayd=y
CONFIG_PACKAGE_resolveip=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-rpcsys=y
CONFIG_PACKAGE_rsync=y
CONFIG_PACKAGE_rulengd=y
CONFIG_PACKAGE_strace=y
CONFIG_PACKAGE_sulu=y
CONFIG_PACKAGE_swmodd=m
CONFIG_PACKAGE_tc=y
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_traceroute6=y
CONFIG_PACKAGE_uledd=y
CONFIG_PACKAGE_umbim=y
CONFIG_PACKAGE_uqmi=y
CONFIG_PACKAGE_urlfilter=y
CONFIG_PACKAGE_usb-modeswitch=y
CONFIG_PACKAGE_usbreset=y
CONFIG_PACKAGE_uspd=y
CONFIG_PACKAGE_vsftpd-tls=m
CONFIG_PACKAGE_wget=y
CONFIG_PACKAGE_wwan=y
CONFIG_PACKAGE_wifimngr=y
CONFIG_PACKAGE_uuidgen=y
CONFIG_PACKAGE_xl2tpd=y
CONFIG_PACKAGE_zoneinfo-core=y
CONFIG_PACKAGE_zoneinfo-europe=y
@@ -192,6 +183,7 @@ CONFIG_BUSYBOX_CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
CONFIG_BUSYBOX_CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
CONFIG_BUSYBOX_CONFIG_FEATURE_VOLUMEID_UBIFS=y
CONFIG_BUSYBOX_CONFIG_TIMEOUT=y
CONFIG_BUSYBOX_CONFIG_NOHUP=y
CONFIG_LIBCURL_CRYPTO_AUTH=y
# CONFIG_LIBCURL_MBEDTLS is not set
CONFIG_LIBCURL_OPENSSL=y
@@ -220,8 +212,10 @@ CONFIG_TARGET_PREINIT_IP=""
CONFIG_TARGET_PREINIT_NETMASK=""
CONFIG_TARGET_PREINIT_BROADCAST=""
# Generate rootfs tar file
CONFIG_TARGET_ROOTFS_TARGZ=y
# The urandom-seed package is very strange. It seeds urandom with urandom...
# Disable it. Most SoCs nowadays has HW random generators anyway.
# CONFIG_PACKAGE_urandom-seed is not set
# CONFIG_PACKAGE_urngd is not set

View File

@@ -32,7 +32,7 @@ function feeds_update {
fi
# targets need to be installed explicitly
targets="iopsys-brcm63xx-arm iopsys-ramips intel_mips iopsys-x86 iopsys-armvirt iopsys-bcm27xx"
targets="iopsys-brcm63xx-arm iopsys-ramips intel_mips iopsys-x86 iopsys-armvirt iopsys-bcm27xx iopsys-mediatek iopsys-econet"
for target in $targets
do
rm -f target/linux/$target

View File

@@ -17,6 +17,8 @@ function genconfig {
bcm27xx="target/linux/iopsys-bcm27xx"
brcm63xx_arm="target/linux/iopsys-brcm63xx-arm"
ramips="target/linux/iopsys-ramips"
mediatek="target/linux/iopsys-mediatek"
econet="target/linux/iopsys-econet"
intel_mips="target/linux/intel_mips"
x86="target/linux/iopsys-x86"
armvirt="target/linux/iopsys-armvirt"
@@ -113,6 +115,10 @@ function genconfig {
iopsys_brcm63xx_arm=$(cd $brcm63xx_arm; ./genconfig)
[ -e $ramips/genconfig ] &&
iopsys_ramips=$(cd $ramips; ./genconfig)
[ -e $mediatek/genconfig ] &&
iopsys_mediatek=$(cd $mediatek; ./genconfig)
[ -e $econet/genconfig ] &&
iopsys_econet=$(cd $econet; ./genconfig)
[ -e $intel_mips/genconfig ] &&
iopsys_intel_mips=$(cd $intel_mips; ./genconfig)
[ -e $x86/genconfig ] &&
@@ -123,7 +129,7 @@ function genconfig {
iopsys_bcm27xx=$(cd $bcm27xx; ./genconfig)
if [ "$profile" == "LIST" ]; then
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_intel_mips iopsys_x86 iopsys_armvirt iopsys_bcm27xx; do
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_mediatek iopsys_econet iopsys_intel_mips iopsys_x86 iopsys_armvirt iopsys_bcm27xx; do
echo "$list based boards:"
for b in ${!list}; do
echo -e "\t$b"
@@ -148,6 +154,22 @@ function genconfig {
fi
done
for p in $iopsys_mediatek; do
if [ $p == $profile ]; then
target="iopsys_mediatek"
target_config_path="$mediatek/config"
return
fi
done
for p in $iopsys_econet; do
if [ $p == $profile ]; then
target="iopsys_econet"
target_config_path="$econet/config"
return
fi
done
for p in $iopsys_intel_mips; do
if [ $p == $profile ]; then
target="intel_mips"
@@ -187,12 +209,8 @@ function genconfig {
bcmAllowed=0
endptAllowed=0
natalieAllowed=0
#mediatekAllowed=0
git ls-remote git@dev.iopsys.eu:broadcom/bcmcreator.git -q 2>/dev/null && bcmAllowed=1
#git ls-remote git@dev.iopsys.eu:mediatek/linux.git -q 2>/dev/null && mediatekAllowed=1
git ls-remote git@dev.iopsys.eu:dialog/natalie-dect-12.26.git -q 2>/dev/null && natalieAllowed=1
git ls-remote git@dev.iopsys.eu:iopsys/endptmngr.git -q 2>/dev/null && endptAllowed=1
}
@@ -361,6 +379,18 @@ function genconfig {
subtarget="mt7621"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
echo "CONFIG_TARGET_MULTI_PROFILE=y" >> .config
echo "CONFIG_TARGET_PER_DEVICE_ROOTFS=y" >> .config
echo "CONFIG_TARGET_DEVICE_${target}_${subtarget}_DEVICE_${BOARDTYPE}=y" >> .config
elif [ "$target" = "iopsys_mediatek" ]; then
subtarget="mt7622"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}_DEVICE_${BOARDTYPE}=y" >> .config
elif [ "$target" = "iopsys_econet" ]; then
subtarget="en7562"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}_DEVICE_${BOARDTYPE}=y" >> .config
elif [ "$target" = "iopsys_bcm27xx" ]; then
subtarget="iopsys_bcm2711"
@@ -421,14 +451,10 @@ function genconfig {
echo "CONFIG_GITMIRROR_REWRITE=y" >>.config
[ $bcmAllowed -eq 0 ] && echo "CONFIG_BCM_OPEN=y" >> .config
[ $endptAllowed -eq 0 ] && echo "CONFIG_ENDPT_OPEN=y" >> .config
[ $natalieAllowed -eq 0 ] && echo "CONFIG_NATALIE_OPEN=y" >> .config
#[ $mediatekAllowed -eq 0 ] && echo "CONFIG_MEDIATEK_OPEN=y" >> .config
else
echo "# CONFIG_GITMIRROR_REWRITE is not set" >>.config
echo "CONFIG_BCM_OPEN=y" >> .config
echo "CONFIG_ENDPT_OPEN=y" >> .config
echo "CONFIG_NATALIE_OPEN=y" >> .config
#echo "CONFIG_MEDIATEK_OPEN=y" >> .config
fi
if [ -n "$BRCM_MAX_JOBS" ]
@@ -436,9 +462,6 @@ function genconfig {
echo "CONFIG_BRCM_MAX_JOBS=\"1\"" >>.config
fi
# Force regeneration of themes
touch package/feeds/juci/juci/Makefile
# Force regeneration of kernel Makefile
# Needed to disable kmods for iopsys-brcm targets
touch package/kernel/linux/Makefile

View File

@@ -186,12 +186,8 @@ function genconfig_min {
bcmAllowed=0
endptAllowed=0
natalieAllowed=0
mediatekAllowed=0
git ls-remote git@dev.iopsys.eu:broadcom/bcmcreator.git -q 2>/dev/null && bcmAllowed=1
git ls-remote git@dev.iopsys.eu:mediatek/linux.git -q 2>/dev/null && mediatekAllowed=1
git ls-remote git@dev.iopsys.eu:dialog/natalie-dect-12.26.git -q 2>/dev/null && natalieAllowed=1
git ls-remote git@dev.iopsys.eu:iopsys/endptmngr.git -q 2>/dev/null && endptAllowed=1
}

View File

@@ -30,25 +30,6 @@ build_bcmkernel_consumer() {
cd "$curdir"
}
build_natalie_consumer() {
# create natalie-dect open version tar file
local natalieversion nataliecommith
grep -q "CONFIG_TARGET_NO_DECT=y" .config && return
natalieversion=$(grep -w "PKG_VERSION:" ./feeds/iopsys/natalie-dect/Makefile | cut -d'=' -f2)
nataliecommith=$(grep -w "PKG_SOURCE_VERSION:" ./feeds/iopsys/natalie-dect/Makefile | cut -d'=' -f2)
[ -n "$profile" ] && [ -n "$natalieversion" ] && [ -n "$nataliecommith" ] || return
ssh $SERVER "test -f $FPATH/natalie-dect-$profile-$natalieversion-$nataliecommith.tar.gz" && return
cd ./build_dir/target-*/natalie-dect-$natalieversion/
mkdir natalie-dect-open-$natalieversion
cp -f ipkg-*/natalie-dect/lib/modules/*/extra/dect.ko natalie-dect-open-$natalieversion/dect.ko
tar -czv natalie-dect-open-$natalieversion/ -f natalie-dect-$profile-$natalieversion-$nataliecommith.tar.gz
scp -pv natalie-dect-$profile-$natalieversion-$nataliecommith.tar.gz $SERVER:$FPATH/
cp natalie-dect-$profile-$natalieversion-$nataliecommith.tar.gz $curdir/
rm -rf natalie-dect-open-$natalieversion
rm -f natalie-dect-$profile-$natalieversion-$nataliecommith.tar.gz
cd "$curdir"
}
build_endptmngr_consumer() {
# create endptmngr open version tar file
local endptversion endptcommith
@@ -70,46 +51,6 @@ build_endptmngr_consumer() {
cd "$curdir"
}
build_mediatek_kernel() {
local mediatek_commit kernel
mediatek_commit=$(grep CONFIG_KERNEL_GIT_COMMIT .config | cut -d '=' -f2 | tr -d '"')
kernel=linux-git*
[ -n "$mediatek_commit" ] || return
ssh $SERVER "test -f $FPATH/mediatek-kernel-open-$mediatek_commit.tar.gz" && return
echo "Building mediatek kernel tarball from kernel commit:"
echo $mediatek_commit
cd build_dir/target-mipsel_1004kc*/linux-iopsys-ramips*/linux-git*
# remove git repo
rm -rf .git
cd ..
tar -czv $kernel -f mediatek-kernel-open-$mediatek_commit.tar.gz
scp -pv mediatek-kernel-open-$mediatek_commit.tar.gz $SERVER:$FPATH/
cd "$curdir"
}
build_mediatek_wifi_consumer() {
local ver commit
local chip=$1
ver=$(grep -w "PKG_VERSION:" ./feeds/mediatek/mt${chip}/Makefile | cut -d'=' -f2)
commit=$(grep -w "PKG_SOURCE_VERSION:" ./feeds/mediatek/mt${chip}/Makefile | cut -d'=' -f2)
[ -n "$ver" ] && [ -n "$commit" ] || return
ssh $SERVER "test -f $FPATH/mtk${chip}e-${ver}_${commit}.tar.xz" && return
cd build_dir/target-mipsel_1004kc*/linux-iopsys-ramips*/mtk${chip}e-$ver/ipkg-*
mkdir -p mtk${chip}e-$ver/src
cp -rf kmod-mtk${chip}e/etc mtk${chip}e-$ver/src/
cp -rf kmod-mtk${chip}e/lib mtk${chip}e-$ver/src/
tar Jcf mtk${chip}e-${ver}_${commit}.tar.xz mtk${chip}e-$ver
scp -pv mtk${chip}e-${ver}_${commit}.tar.xz $SERVER:$FPATH/
cp mtk${chip}e-${ver}_${commit}.tar.xz $curdir/
rm -rf mtk${chip}e-$ver
rm -f mtk${chip}e-${ver}_${commit}.tar.xz
cd "$curdir"
}
function print_usage {
echo "Usage: $0 generate_tarballs"
echo " -t <target>"
@@ -154,12 +95,7 @@ function generate_tarballs {
if [ "$stk_target" == "broadcom" ]; then
build_bcmkernel_consumer
build_natalie_consumer
build_endptmngr_consumer
elif [ "$stk_target" == "mediatek" ]; then
build_mediatek_kernel
build_mediatek_wifi_consumer 7603
build_mediatek_wifi_consumer 7615
else
echo "Invalid target: $stk_target"
print_usage

View File

@@ -1,12 +1,29 @@
# this is a developer helper script to install the public ssh key in the created image
DROPBEAR_AUTHORIZED_KEYS_FILE=/etc/dropbear/authorized_keys
function get_ssh_public_keys {
(
shopt -s nullglob
# home directory, not all of those are supported by dropbear,
# but let's include them now already to decrease future maintenance
cat /dev/null ~/.ssh/{id_rsa,id_dsa,id_ecdsa,id_ecdsa_sk,id_ed25519,id_ed25519_sk,id_xmss}.pub 2> /dev/null
# keys added manually or automatically to the build dir
cat "files${DROPBEAR_AUTHORIZED_KEYS_FILE}" 2>/dev/null
# keys in the agent (useful when using SSH agent forwarding)
ssh-add -L 2> /dev/null
) | sort | uniq
}
function install_key {
mkdir -p files/etc/dropbear
test -e ~/.ssh/id_dsa.pub && cat ~/.ssh/id_dsa.pub >>files/etc/dropbear/authorized_keys
test -e ~/.ssh/id_rsa.pub && cat ~/.ssh/id_rsa.pub >>files/etc/dropbear/authorized_keys
chmod 0644 files/etc/dropbear/authorized_keys
local build_dir_dropbear_authorized_keys_file="files${DROPBEAR_AUTHORIZED_KEYS_FILE}"
mkdir -p "$(dirname "$build_dir_dropbear_authorized_keys_file")"
get_ssh_public_keys > "$build_dir_dropbear_authorized_keys_file"
chmod 0644 "$build_dir_dropbear_authorized_keys_file"
echo "Keys in "$build_dir_dropbear_authorized_keys_file" are now:"
cat "$build_dir_dropbear_authorized_keys_file"
echo
echo "Disabling login on serial console..."
echo "::sysinit:/etc/init.d/rcS S boot" >files/etc/inittab
echo "::shutdown:/etc/init.d/rcS K shutdown" >>files/etc/inittab
echo "console::askconsolelate:/bin/cttyhack /bin/ash --login" >>files/etc/inittab
@@ -14,4 +31,25 @@ function install_key {
echo Done
}
function ssh_install_key_help() {
echo Usage: $0 ssh_install_key HOSTNAME
echo
echo "Installs SSH public keys to a device's authorized_keys file"
}
# this is a developer helper script to install the public ssh key on host running dropbear
function ssh_install_key {
if [ $# -ne 1 ] || [ "$1" == '--help' ]; then
ssh_install_key_help
[ $# -eq 1 ]; return
fi
host="$1"
local keys="$(get_ssh_public_keys)"
echo "Adding the following keys to $DROPBEAR_AUTHORIZED_KEYS_FILE on $host:"
echo "$keys"
ssh root@$host "echo '$keys' >> '$DROPBEAR_AUTHORIZED_KEYS_FILE'" && echo ok
}
register_command "ssh_install_key" "Install the users public ssh key on host running dropbear"
register_command "install_key" "Install the user's public ssh key in the created image"

View File

@@ -1,17 +0,0 @@
# this is a developer helper script to install the public ssh key on host running dropbear
function ssh_install_key {
if [ -e ~/.ssh/id_rsa.pub ]; then
echo "Adding public RSA key to $1"
KEY=`cat ~/.ssh/id_rsa.pub`
elif [ -e ~/.ssh/id_dsa.pub ]; then
echo "Adding public DSA key to $1"
KEY=`cat ~/.ssh/id_dsa.pub`
else
echo "No public key found"
exit 1
fi
ssh root@$1 "echo '$KEY' >> /etc/dropbear/authorized_keys" && echo ok
}
register_command "ssh_install_key" "Install the users public ssh key on host running dropbear"

View File

@@ -26,14 +26,8 @@ function taas-init() {
exit 1
fi
# NAND erase block size.
nandBlkSz=$(grep CONFIG_TARGET_NAND_BLOCKSZ .config | \
tr -s "=\"" " " | cut -d " " -f 2)
nandBlkSz=$((nandBlkSz / 1024))
# Create a list of all images which might be of use.
for f in ${PWD}/bin/targets/iopsys-*/generic/last.* \
${PWD}/build_dir/target-arm*/bcmkernel/bcm963xx/targets/9*/bcm*_linux_raw_image_${nandBlkSz}.bin; do
for f in ${PWD}/bin/targets/iopsys-*/generic/last.*; do
[[ -s "$f" ]] && images+=("$f")
done

View File

@@ -492,7 +492,8 @@ check_feeds()
echo "Now checking if any changes have been done to the feeds."
echo -e "${Green}_______________________________________________________________________________${Color_Off}"
feeds=$(grep -v "^#" feeds.conf| awk '{print $2}')
feeds="$1"
[ -n "$feeds" ] || feeds=$(grep -v "^#" feeds.conf| awk '{print $2}')
for feed in `echo $feeds`
do
feed_hash=$(feeds_hash $feed)
@@ -552,7 +553,7 @@ check_feeds()
done
}
feeds_at_top()
is_local_and_remote_same()
{
git remote update 2>/dev/null 1>/dev/null
LOCAL=$(git rev-parse @)
@@ -581,7 +582,7 @@ feeds_at_top()
usage(){
echo -e "$0 [flags]"
echo -e "flags:"
echo -e " -v\tVerbose mode"
echo -e " -f\tFeed to update"
echo -e " -h\tShow this help"
echo -e " -u\tUpdate package version\n"
}
@@ -589,7 +590,7 @@ usage(){
# Exported interface
function update_package {
UPDATE=0
UPDATE=0
Color_Off='\033[0m' # Text Reset
@@ -603,18 +604,18 @@ function update_package {
Cyan='\033[0;36m' # Cyan
White='\033[0;37m' # White
while getopts "v:hu" opt; do
while getopts "f:hu" opt; do
case $opt in
v)
verbose=$OPTARG
f)
feed=$OPTARG
;;
h)
usage
exit 1
;;
u)
UPDATE=1
;;
usage
exit 1
;;
u)
UPDATE=1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
@@ -637,9 +638,9 @@ function update_package {
set -E
trap '[ "$?" -ne 99 ] || exit 99' ERR
feeds_at_top
check_packages
check_feeds
is_local_and_remote_same
[ -n "$feed" ] || check_packages
check_feeds $feed
}
register_command "update_package" "Publish changes to packages and feeds"

View File

@@ -1,58 +0,0 @@
#
# Copyright (C) 2019 iopsys
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=iopupgrade
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_SOURCE_VERSION:=01f2afd6c831d6f9eb2940c7e7af16f7e4d439c2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/iopupgrade
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
# support parallel build
PKG_BUILD_PARALLEL:=1
#re create configure scripts if not present.
PKG_FIXUP:=autoreconf
# run install target when cross compiling. basically, make install DESTDIR=$(PKG_INSTALL_DIR)
# this way we don't need to pick out the resulting files from the build dir.
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/iopupgrade
CATEGORY:=Utilities
TITLE:=Iopsys system upgrade utility
URL:=
# DEPENDS:=
endef
define Package/iopupgrade/description
Application handling peripheral
endef
define Package/iopupgrade/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/etc/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iopupgrade $(1)/sbin/
endef
$(eval $(call BuildPackage,iopupgrade))

View File

@@ -1,329 +0,0 @@
#!/bin/sh
###############################################################################
# Global variables. can be used directly in any function called.
cur_vol="" # num,[0/1] Number used for ubifs root filesystem volume name.
# eg: rootfs_0 or rootfs_1, currently used
upd_vol="" # num,[0/1] Number used for ubifs root filesystem volume name.
# eg: rootfs_0 or rootfs_1, the one we want to update
cmdline="" # command line settings.
cmdline_match="" # Headers to match to the image
###############################################################################
# file local variables. should not be used in imported functions. Can be used
# by functions declared in this script
chroot_cmdline="" # command line for the iop_chroot command.
board="" # string, Board name that is going to be matched
# against header of firmware image
upd_ubi_id="" # num, UBI volume number for the volume name
# "rootfs_$upd_vol", use to know what volume to run
# ubiupdatevol on.
run_cleanup=0 # if set the cleanup should be run otherwise we skip it.
run_mount_cleanup=0 # set if we should run umount in cleanup
upd_kernel=0 # set to 1 if system has the kernel in own mtd partition
log_stdout=1 # set to 0 to prevent the log to also print to stdout
upd_noreboot=0 # set to 1 if we should not reboot after programming
upd_forceimage=0 # set this to force upgrade even if image is for wrong board.
upd_forceboot=0 # set this to force upgrade of boot loader
upd_keepconfig=0 # set this to keep the current configuration.
###############################################################################
# import external functions
source /lib/upgrade/iopsys.sh
[ -f /lib/upgrade/iopupgrade ] && source /lib/upgrade/iopupgrade
# only call function if it exists
function_call() {
if type "$1" 2>/dev/null >/dev/null
then
$1 $@
fi
}
###############################################################################
# Cleanup and error handling functions.
function log {
TIME=$(date)
[ $log_stdout -eq 1 ] && echo "$@"
echo "[$TIME] $@" >>/tmp/upd_log
}
# we need to handle ctrl-c, segmentation fault, sigpipe and other abnormal
# terminations. no printing to stdout/stderr allowed in this function or
# anyhting it calls as stdout/stderr might no longer exist
function finish {
if [ $run_cleanup -eq 1 ]
then
function_call upd_cleanup
run_cleanup=0
log ""
fi
if [ $run_mount_cleanup -eq 1 ]
then
log "Cleaning up after mount"
umount_newroot
fi
# always kill the timeout process, will leave the sleep but that is harmless
# as long as the kill will nerver be run.
if [ -n "$TIMEOUT_PID" ]; then
kill $TIMEOUT_PID 2>/dev/null
TIMEOUT_PID=""
fi
lock -u /tmp/iopu.lock
}
function ctrl_c {
# on ctrl-c we remove the exit handler as it is called directly.
trap - EXIT
# call cleanup function
finish
# do not continue program
exit 1
}
function sig_pipe {
log_stdout=0 # stdin,stdout,stderr do not exist anymore
log "Got sigpipe. Turning of log printing to stdout"
}
# if a timout happens terminate
function timeout {
exit 1
}
# Not much that can be done if the mount fails but to try again.
# if after 10 seconds there still is errors abort program.
# UBIFS has some wierd time intervall after ubiupdatevol where
# a mount of the newly written data results in a busy error.
function mount_retry {
local tries=0
while [ $tries -lt 10 ]
do
if mount $@ 2>/dev/null
then
return
fi
tries=$((tries + 1))
sleep 1
done
log "mount failed for command [mount $@] so upgrade failed."
exit 1
}
function mount_newroot {
run_mount_cleanup=1
mkdir -p /tmp/newroot
mkdir -p /tmp/newroot_overlay
mount_retry -t ubifs ubi0:rootfs_$upd_vol /tmp/newroot
mount_retry -o noatime,lowerdir=/tmp/newroot,upperdir=/tmp/newroot/overlay,workdir=/tmp/newroot/lib/overlay.tmp -t overlay "overlayfs:/tmp/newroot/overlay" /tmp/newroot_overlay
mount_retry --bind /tmp/newroot/ /tmp/newroot_overlay/rom
mount_retry --bind /dev /tmp/newroot_overlay/dev
mount_retry --bind /proc /tmp/newroot_overlay/proc
mount_retry --bind /sys /tmp/newroot_overlay/sys
mount_retry -t tmpfs -o noatime,mode=0755 root /tmp/newroot_overlay/tmp
mkdir -p /tmp/newroot_overlay/tmp/oldroot
mount_retry --bind / /tmp/newroot_overlay/tmp/oldroot
mount_retry --bind /tmp /tmp/newroot_overlay/tmp/oldroot/tmp
}
function umount_newroot {
umount /tmp/newroot_overlay/tmp/oldroot/tmp
umount /tmp/newroot_overlay/tmp/oldroot
umount /tmp/newroot_overlay/tmp
umount /tmp/newroot_overlay/sys
umount /tmp/newroot_overlay/proc
umount /tmp/newroot_overlay/dev
umount /tmp/newroot_overlay/rom
umount /tmp/newroot_overlay
umount /tmp/newroot
rmdir /tmp/newroot_overlay /tmp/newroot
run_mount_cleanup=0
}
function usage {
echo "usage: $0 iopu [opts] "
echo ""
echo "opts:"
echo ""
echo " -n Do not do the final reboot of the target board"
echo " -c Keep configuration"
echo " -x Force install even if firmware is not for this board"
echo " -b Force install of bootloader regardless of version installed"
echo " -r Jump into chroot env of other system"
echo " -f Firmware file to use"
echo " -C \"command\" Execute command in chroot env of other system"
}
# Execute command in newroot(other system root)
function newroot_exec {
upd_vol=$(get_flashbank_next)
mount_newroot
(ENV=/sbin/iopu_chroot_env chroot /tmp/newroot_overlay "$@")
echo ""
umount_newroot
}
function system_is_y_image {
# find out what rootfs volume is active.
cur_vol=$(get_flashbank_current)
upd_vol=$(get_flashbank_next)
# convert volume name "rootfs_$upd_vol" into ubi volume id
upd_ubi_id=$(ubinfo -d 0 -N rootfs_$upd_vol | awk "/Volume ID:/ {print \$3}")
log "installing Root Fileystem into UBI volume rootfs_$upd_vol"
# prepare to match dsl.
function_call upd_conf_dsl
log "now starting writing data to flash with [ iopupgrade $cmdline -M "$cmdline_match" -u ubi0_$upd_ubi_id ]"
run_cleanup=1 # When we start to actually write data there might be some
# things that need cleanup if we get an error/crash
if ! iopupgrade $cmdline -M "$cmdline_match" -u ubi0_$upd_ubi_id; then
log "iopupgrade program Failed"
exit 1
fi
log "Firmware programmed to flash."
# Force upgrade of boot loader
[ $upd_forceboot -eq 1 ] && chroot_cmdline="$chroot_cmdline -b"
if [ $upd_keepconfig -eq 1 ]; then
log "Transfering configuration to new system."
chroot_cmdline="$chroot_cmdline -c"
fi
mount_newroot
if ! chroot /tmp/newroot_overlay /sbin/iopu_chroot $chroot_cmdline; then
log "Configuration migration failed!"
exit 1
fi
umount_newroot
log "New firmware fully installed."
run_cleanup=0
# Now make sure that we actually boot the new system on the next reboot
upd_finnish
}
function system_is_FIT_image {
# prepare to match dsl.
#function_call upd_conf_dsl
#here we write data
bcm_flasher $firmware_file
bcm_bootstate 1
log "Firmware programmed to flash."
}
###############################################################################
# just one instance
# this check has to be done before we install handler to avoid removing the
# lock even if it was not available.
if ! lock -n /tmp/iopu.lock
then
echo "Another instance of iopu already running"
echo "If you are sure this is wrong remove file /tmp/iopu.lock"
exit 1
fi
trap finish EXIT
trap ctrl_c INT
trap timeout SIGALRM
trap sig_pipe SIGPIPE
while getopts "nrxbhcC:f:" opt; do
case $opt in
n)
upd_noreboot=1
;;
x)
upd_forceimage=1
;;
b)
upd_forceboot=1
;;
c)
upd_keepconfig=1
;;
r)
newroot_exec /bin/sh
exit
;;
C)
newroot_exec "${OPTARG}"
exit
;;
f)
firmware_file="${OPTARG}"
;;
h)
usage
exit 1
;;
esac
done
# put a timeout on this if it takes longer than 120 seconds we should abort
# and clean up
(
sleep 120 && kill -ALRM $$ 2>/dev/null # send it a SIGALRM signal
)&
TIMEOUT_PID=$!
log "Firmware upgrade started"
# Should board name be checked
if [ $upd_forceimage -eq 0 ]
then
board=$(db get hw.board.model_name)
cmdline_match="board=$board"
fi
# BUG: should probably read a config file.
if [ -f /proc/nvram/boardid ]
then
system_is_FIT_image
else
system_is_y_image
fi
# spawn the reboot to a subshell to allow the main program to quit before reset
# to avoid any hanged network connection like ssh
if [ $upd_noreboot -eq 0 ]
then
(
log_stdout=0 # stdin,stdout,stderr do not exist anymore, we are in a
# subshell and then the trap is no longer working.
sleep 1
log "Rebooting NOW!!!"
log ""
reboot
)&
log "Reboot initiated"
else
log "Skipping reboot"
fi

View File

@@ -1,71 +0,0 @@
#!/bin/sh
#
# This program is intended to be run in a chroot environment where the old system
# is mounted in /tmp/oldroot
#
###############################################################################
# Global variables. can be used directly in any function called.
###############################################################################
# file local variables. should not be used in imported functions. Can be used
# by functions declared in this script
upd_forceboot=0
log_stdout=1 # set to 0 to prevent the log to also print to stdout
upd_keepconfig=0 # set this to keep the current configuration.
###############################################################################
# import external functions
source /lib/upgrade/iopsys.sh
[ -f /lib/upgrade/iopupgrade ] && source /lib/upgrade/iopupgrade
# only call function if it exists
function_call() {
if [ -n "$1" ] && type "$1" 2>/dev/null >/dev/null
then
$1 "$@" || exit
fi
}
# Cleanup and error handling functions.
function log {
TIME=$(date)
[ $log_stdout -eq 1 ] && echo "$@"
echo "[$TIME] $@" >>/root/upd_log
}
while getopts "hbc" opt; do
case $opt in
h)
upd_usage
exit 1
;;
c)
upd_keepconfig=1
;;
b)
upd_forceboot=1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
# copy old install log over
cp /tmp/oldroot/tmp/upd_log /root/upd_log
# Upgrade boot loader if needed.
function_call upd_program_boot
# Let the new upgrade do whatever it needs,
# such as configuration migration etc.
if [ $upd_keepconfig -eq 1 -a -x /lib/upgrade/post-rootfs-fixup ]; then
(/lib/upgrade/post-rootfs-fixup /dev/null /tmp/oldroot) || exit
fi

View File

@@ -1,18 +0,0 @@
#!/bin/sh
# this is run when "iopr -r" is executed.
# intended to just show what environment is actually started.
cat /etc/banner
echo "/tmp/oldroot:"
echo " Contains the running root filesystem. It is live so files are in use"
echo " Anything copying/reading files from there needs to make sure it is done safely."
echo ""
Color_Off='\033[0m' # Text Reset
Red='\033[0;31m' # Red
PS1="${Red}chroot_new${Color_Off}:\w\#"
export PS1
export Red
export Color_Off

View File

@@ -10,6 +10,7 @@ PKG_RELEASE:=1.0.0
PKG_SOURCE_VERSION:=44b32937a062ec4ffc9f7355841dc94ab6efa50f
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git@dev.iopsys.eu:iopsys/json-editor.git
PKG_MIRROR_HASH:=skip
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

122
juci/Makefile Normal file
View File

@@ -0,0 +1,122 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=juci
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/juci.git
PKG_SOURCE_VERSION:=70b66bfc7f0e25e77b6920c3d44e5b05f4bfcf95
PKG_VERSION:=2020-05-27
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_RELEASE=$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/juci
$(Package/juci/default)
SECTION:=juci
CATEGORY:=JUCI
MENU=1
TITLE:=JUCI Core Package (select this to select default plugins)
DEPENDS:=+libubox +libubus +owsd +rpcd +rpcd-mod-file +questd
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/src/
ln -s $(PKG_BUILD_DIR) $(1)/usr/src/juci
endef
define Build/Compile
$(call Build/Compile/Default,THEME_PATH="$(TOPDIR)/tmp/juci-themes/")
endef
define Package/juci/description
JUCI Javascript UCI Web interface.
endef
define Package/juci/install
$(INSTALL_DIR) $(1)/
$(CP) $(PKG_BUILD_DIR)/bin/juci/* $(1)/
$(CP) ./files/* $(1)/
endef
define Package/juci/postinst
#!/bin/sh
juci-update
exit 0
endef
$(eval $(call BuildPackage,juci))
####### Extensions / Themes and Plugins
define RegisterAddonInner
define Package/$(2)
SECTION:=juci
CATEGORY:=JUCI
TITLE:=default
SUBMENU:=$(1)
TITLE:=$(if $(3),$(3),JUCI $(2) plugin)
DEPENDS:=$(4)
endef
define Package/$(2)/install
$(INSTALL_DIR) $$(1)/
$(CP) $(PKG_BUILD_DIR)/bin/$(2)/* $$(1)/
endef
endef
define RegisterAddon
$(eval $(call RegisterAddonInner,$(1),$(2),$(3),$(4),$(5)))
$(eval $(call BuildPackage,$(2)))
endef
$(eval $(call RegisterAddon,Plugins,juci-catv, CATV Module,@(PACKAGE_catv)))
$(eval $(call RegisterAddon,Plugins,juci-cgroups, CGroups Module,@(PACKAGE_icgroupd)))
$(eval $(call RegisterAddon,Plugins,juci-ddns, DDNS Configuration,@(PACKAGE_ddns-scripts)))
$(eval $(call RegisterAddon,Plugins,juci-diagnostics, Simple Diagnostics,@(PACKAGE_busybox)))
$(eval $(call RegisterAddon,Plugins,juci-ndt, NDT Speed Test client,@(PACKAGE_ndt)))
$(eval $(call RegisterAddon,Plugins,juci-dnsmasq-dhcp, DHCP/DNSMasq Configuration,@(PACKAGE_dnsmasq||PACKAGE_dnsmasq-full)))
$(eval $(call RegisterAddon,Plugins,juci-dropbear, Dropbear Configuration,@(PACKAGE_dropbear)))
$(eval $(call RegisterAddon,Plugins,juci-easyqos, Easy QoS module,@(PACKAGE_easy-qos)))
$(eval $(call RegisterAddon,Plugins,juci-event, Event Module,@(PACKAGE_owsd)))
$(eval $(call RegisterAddon,Plugins,juci-firewall-fw3, Firewall Configuration,@(PACKAGE_firewall)))
$(eval $(call RegisterAddon,Plugins,juci-icwmp, TR-069 Module,@(PACKAGE_icwmp)))
$(eval $(call RegisterAddon,Plugins,juci-config-backup, Config Backup Module))
$(eval $(call RegisterAddon,Plugins,juci-qos, QoS module,@(PACKAGE_qos-scripts)))
$(eval $(call RegisterAddon,Plugins,juci-voice-client, Asterisk Voice Client Module,@(PACKAGE_asterisk)))
$(eval $(call RegisterAddon,Plugins,juci-minidlna, MiniDLNA Configuration,@(PACKAGE_minidlna)))
$(eval $(call RegisterAddon,Plugins,juci-mcproxy, Multicast Proxy Configuration,@(PACKAGE_mcproxy)))
$(eval $(call RegisterAddon,Plugins,juci-mod-status, Status Reporting Module,@(PACKAGE_questd)))
$(eval $(call RegisterAddon,Plugins,juci-mod-system, System Administration Module))
$(eval $(call RegisterAddon,Plugins,juci-mwan3, mwan3 Configuration,@(PACKAGE_mwan3)))
$(eval $(call RegisterAddon,Plugins,juci-natalie-dect, DECT Module,@(PACKAGE_dectmngr2)))
$(eval $(call RegisterAddon,Plugins,juci-netmode, Netmode Module,@(PACKAGE_netmode)))
$(eval $(call RegisterAddon,Plugins,juci-network-device, Network Device Configuration,@(PACKAGE_netifd)))
$(eval $(call RegisterAddon,Plugins,juci-network-dsl, DSL Module))
$(eval $(call RegisterAddon,Plugins,juci-network-netifd, Network Module,@(PACKAGE_netifd)))
$(eval $(call RegisterAddon,Plugins,juci-network-port, Ethernet Port Configuration,@(PACKAGE_port-management)))
$(eval $(call RegisterAddon,Plugins,juci-openvpn, OpenVPN configuration,@(PACKAGE_openvpn)))
$(eval $(call RegisterAddon,Plugins,juci-owsd, OWSD configuration,@(PACKAGE_owsd)))
$(eval $(call RegisterAddon,Plugins,juci-printer, p910nd Printer Server Configuration,@(PACKAGE_p910nd)))
#$(eval $(call RegisterAddon,Plugins,juci-realtime-graphs, Realtime Graphs))
$(eval $(call RegisterAddon,Plugins,juci-samba, Samba Configuration,@(PACKAGE_samba3)))
$(eval $(call RegisterAddon,Plugins,juci-sfp, SFP Configuration,@(PACKAGE_peripheral_manager)))
$(eval $(call RegisterAddon,Plugins,juci-snmpd, SNMP Module,@(PACKAGE_snmpd)))
$(eval $(call RegisterAddon,Plugins,juci-sysupgrade, Sysupgrade Firmware Upgrade,@(PACKAGE_rpcd-mod-rpcsys)))
$(eval $(call RegisterAddon,Plugins,juci-uhttpd, uHTTPD Configuration,@(PACKAGE_uhttpd)))
$(eval $(call RegisterAddon,Plugins,juci-upnp, UPnP Configuration Module,@(PACKAGE_miniupnpd)))
#$(eval $(call RegisterAddon,Plugins,juci-usb, USB Module))
$(eval $(call RegisterAddon,Plugins,juci-wireless, Wireless Management Module))
$(eval $(call RegisterAddon,Plugins,juci-wifilife, WiFi Life Module,@(PACKAGE_wifilife)))
$(eval $(call RegisterAddon,Themes,juci-theme-iopsys))
####### dynamically publish themes as packages #######
$(foreach th,$(wildcard $(TOPDIR)/tmp/juci-themes/*),$(eval $(call RegisterAddon,Themes,$(notdir $(th)))))

View File

@@ -0,0 +1,66 @@
config juci 'juci'
option homepage 'overview'
option theme 'juci-theme-iopsys'
option favicon 'favicon.ico'
config login 'login'
option showusername '1'
option defaultuser 'user'
config localization 'localization'
option default_language 'en'
list languages 'en'
config wiki 'wiki'
option visible '0'
option version 'v4.2.x'
config widget
list name 'overviewWidget11WAN'
list require 'ubus:network.interface'
config widget
list name 'overviewWidget10Network'
list require 'ubus:network.interface'
list require 'ubus:router.network->hosts'
config widget
list name 'overviewWidget00WiFi'
list require 'ubus:wifi'
list require 'ubus:wifi.wps'
config menu
option path 'overview'
option page 'overview'
config menu
option path 'system'
option page 'system'
option redirect 'first'
config menu
option path 'status'
option page 'status'
option redirect 'first'
config menu
option path 'status/system'
option page 'status-system'
list require 'ubus:router.system->info'
config menu
option path 'status/network'
option page 'status-network'
list require 'ubus:network.interface'
config menu
option path 'status/dsl'
option page 'network-dsl-status'
list require 'ubus:dsl->stats'
list require 'ubus:dsl->status'
config menu
option path 'system/upgrade'
option page 'settings-upgrade'
list expose 'admin'

41
juci/files/etc/init.d/juci Executable file
View File

@@ -0,0 +1,41 @@
#!/bin/sh /etc/rc.common
. /lib/functions.sh
START=94
STOP=06
USE_PROCD=1
NAME=juci
start_service() {
mkdir -p /tmp/juci
touch /www/index.html.gz
chmod 755 /www/cgi-bin/luci
# this will simply update index.html to include any files that are for some reason not included
# a good way to make sure all plugins are properly included at each boot
config_load juci
local theme
config_get theme juci theme
if [ "$theme" ]
then
if [ -f /www/themes/theme.js.gz ]
then
rm -f /www/themes/theme.js.gz
fi
if [ -f /www/themes/*$theme.js.gz ]
then
ln -s /www/themes/*$theme.js.gz /www/themes/theme.js.gz
fi
fi
juci-update
}
stop() {
service_stop /sbin/juci
}
service_triggers()
{
procd_add_reload_trigger juci
}

View File

@@ -0,0 +1,49 @@
#!/bin/sh
. /lib/functions.sh
USER_SECTION=""
USER_EXISTS=0
find_user(){
local section="$1"
local user="$2"
config_get username $section username
if [ "$username" == "$user" ]; then
USER_SECTION="$section"
USER_EXISTS=1
fi
}
config_load rpcd
USER_EXISTS=0
config_foreach find_user login root
if [ $USER_EXISTS -eq 1 ]; then
uci delete rpcd.$USER_SECTION
fi
USER_EXISTS=0
config_foreach find_user login admin
if [ $USER_EXISTS -eq 0 ]; then
uci -q add rpcd login >/dev/null
uci -q set rpcd.@login[-1].username="admin"
uci -q set rpcd.@login[-1].password="\$p\$admin"
uci -q add_list rpcd.@login[-1].read="enduser"
uci -q add_list rpcd.@login[-1].read="administrator"
uci -q add_list rpcd.@login[-1].write="enduser"
uci -q add_list rpcd.@login[-1].write="administrator"
fi
USER_EXISTS=0
config_foreach find_user login user
if [ $USER_EXISTS -eq 0 ]; then
uci -q add rpcd login >/dev/null
uci -q set rpcd.@login[-1].username="user"
uci -q set rpcd.@login[-1].password="\$p\$user"
uci -q add_list rpcd.@login[-1].read="enduser"
uci -q add_list rpcd.@login[-1].write="enduser"
fi
uci commit rpcd

View File

@@ -0,0 +1,21 @@
{
"administrator": {
"description": "Administrator Access Rights",
"read": {
"ubus": {
"file": [
"write"
],
"rpc-sys": [
"upgrade_start",
"upgrade_test"
]
}
},
"write": {
"file": {
"/tmp/firmware.bin": ["write"]
}
}
}
}

View File

@@ -0,0 +1,217 @@
{
"enduser": {
"description": "End User Access Rights",
"read": {
"ubus": {
"dect": [
"state",
"handset",
"status",
"call"
],
"dsl": [
"status",
"stats"
],
"network.device": [
"status"
],
"network.interface*": [
"status",
"dump",
"up",
"down"
],
"router.network": [
"clients",
"hosts",
"dump"
],
"router.system": [
"info",
"memory",
"filesystem",
"process",
"processes"
],
"session": [
"access",
"list",
"destroy",
"login"
],
"system": [
"info",
"board",
"reboot"
],
"testnet": [
"status"
],
"uci": [
"*"
],
"voice.asterisk": [
"status",
"call_log",
"platform",
"supported_countries"
],
"wifi": [
"status"
],
"wifi.ap.*": [
"status",
"stats",
"assoclist",
"stations"
],
"wifi.radio.*": [
"status",
"stats",
"scan",
"scanresults",
"autochannel"
],
"wifi.wps": [
"start",
"stop",
"status",
"showpin"
]
},
"uci": [
"dhcp",
"firewall",
"juci",
"network",
"voice_client",
"wireless"
],
"owsd": [
"client",
"wifi.radio",
"wifi.sta",
"wifi.wps"
]
},
"write": {
"uci": [
"dhcp",
"firewall",
"network",
"wireless"
],
"uci_granular": {
"dhcp": [
{
"match": {
".type": "dhcp"
},
"option": [
"*"
]
},
{
"match": {
".type": "host"
},
"option": [
"*"
]
}
],
"firewall": [
{
"match": {
".type": "settings",
".name": "settings"
},
"option": [
"disabled"
]
},
{
"match": {
".type": "zone"
},
"option": [
"masq",
"name",
"network"
]
},
{
"match": {
".type": "redirect"
},
"option": [
"*"
]
},
{
"match": {
".type": "rule"
},
"option": [
"*"
]
},
{
"match": {
".type": "dmz"
},
"option": [
"enabled",
"host",
"ip6addr"
]
}
],
"network": [
{
"match": {
".type": "interface"
},
"option": [
"*"
]
}
],
"wireless": [
{
"match": {
".type": "wifi-status"
},
"option": [
"wps"
]
},
{
"match": {
".type": "wifi-iface",
"mode": "ap"
},
"option": [
"*"
]
},
{
"match": {
".type": "wifi-device"
},
"option": [
"channel"
]
}
]
},
"owsd": [
"client",
"wifi.radio",
"wifi.sta",
"wifi.wps"
]
}
}
}

View File

@@ -16,6 +16,7 @@ PKG_SOURCE_URL:=https://dev.iopsys.eu/mirror/microxml.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=72965423184f24cc0b963d91c2d1863cdb01b6aa
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=LGPL-2.0
PKG_LICENSE_FILES:=COPYING

View File

@@ -18,6 +18,7 @@ PKG_LICENSE:=LGPL-2.1-only
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
include $(INCLUDE_DIR)/package.mk

View File

@@ -11,6 +11,7 @@ PKG_SOURCE_VERSION:=e4b4c5cce35a52da152776a00532aa0b80879c5b
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=COPYING

View File

@@ -14,6 +14,7 @@ PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/loop-detector
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@@ -1,74 +0,0 @@
#
# Copyright (C) 2019 Iopsys
#
include $(TOPDIR)/rules.mk
PKG_NAME:=map-1905
PKG_VERSION:=0.0.15
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=405e44f14d623db7a5f03e76945315774d2b6deb
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-1905.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/map-1905
SECTION:=utils
CATEGORY:=Utilities
TITLE:= MultiAP Stack
DEPENDS:= +ubox +ieee1905
endef
define Package/map-1905/description
MultiAP plugin for ieee1905d based on Wifi alliance's MAP-r2 specification
endef
define Package/libmaputils
SECTION:=utils
CATEGORY:=Utilities
TITLE:=WFA MultiAP utility library
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE \
-fstrict-aliasing \
-Wall \
-Wextra
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/map-1905/* $(PKG_BUILD_DIR)/
endef
endif
define Package/map-1905/install
$(INSTALL_DIR) $(1)/usr/
$(INSTALL_DIR) $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/libwifimap2.so $(1)/usr/lib/ieee1905/
endef
define Package/libmaputils/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libmaputils.so $(1)/usr/lib/libmaputils.so
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/include/map1905
$(CP) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/map1905/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libmaputils.so $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libmaputils))
$(eval $(call BuildPackage,map-1905))

View File

@@ -1,13 +1,13 @@
#
# Copyright (C) 2020 IOPSYS Software Solutions AB
# Copyright (C) 2020-21 IOPSYS Software Solutions AB
#
include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent
PKG_VERSION:=3.1.3
PKG_VERSION:=5.0.2
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=1f9e4c5beafa216ff16110f3715dc901a25eb897
PKG_SOURCE_VERSION:=bb9da8c46308570b36449dcb73e3df1e8c145d30
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=PROPRIETARY IOPSYS
@@ -16,6 +16,9 @@ PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git@dev.iopsys.eu:iopsys/map-agent.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
PKG_BUILD_DEPENDS:=map-plugin
include $(INCLUDE_DIR)/package.mk
@@ -23,7 +26,8 @@ define Package/map-agent
SECTION:=utils
CATEGORY:=Utilities
TITLE:=WiFi multi-AP Agent (EasyMesh R2)
DEPENDS:=+libwifi +libuci +libubox +ubus +libmaputils +libwsc
DEPENDS:=+libwifi +libuci +libubox +ubus +libeasy +libieee1905 +ieee1905 \
+map-plugin
endef
define Package/map-agent/description
@@ -41,20 +45,11 @@ TARGET_CFLAGS += \
MAKE_PATH:=src
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/map-agent
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/src/include/*.h $(1)/usr/include/map-agent
$(CP) $(PKG_BUILD_DIR)/src/utils/timer_impl.h $(1)/usr/include/map-agent
$(CP) $(PKG_BUILD_DIR)/src/utils/*.so* $(1)/usr/lib/
endef
define Package/map-agent/install
$(INSTALL_DIR) $(1)/etc
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_BUILD_DIR)/src/utils/*.so* $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mapagent $(1)/usr/sbin/
endef

View File

@@ -1,62 +1,32 @@
config wifiagent
config agent 'agent'
option enabled '1'
option debug '6'
option profile '2'
option al_bridge 'br-lan'
config fh-iface
option ifname 'wl0'
option steer 'rssi bssload'
list exclude '00:11:22:33:44:55'
list exclude_btm '00:aa:bb:cc:dd:ee'
list assoc_ctrl '00:10:20:30:40:50'
option btm_retry '3'
option btm_retry_secs '180'
option fallback_legacy '1'
option steer_legacy_reassoc_secs '30'
option steer_legacy_retry_secs '3600'
option assoc_ctrl_secs '30'
option band '2'
#config fh-iface
# option ifname 'wl0'
# option steer 'rssi bssload'
# list exclude '00:11:22:33:44:55'
# list exclude_btm '00:aa:bb:cc:dd:ee'
# list assoc_ctrl '00:10:20:30:40:50'
# option btm_retry '3'
# option btm_retry_secs '180'
# option fallback_legacy '1'
# option steer_legacy_reassoc_secs '30'
# option steer_legacy_retry_secs '3600'
# option assoc_ctrl_secs '30'
# option band '2'
config fh-iface
option ifname 'wl1'
option steer 'rssi bssload'
list exclude '00:11:22:33:44:55'
list exclude_btm '00:aa:bb:cc:dd:ee'
option band '5'
#config fh-iface
# option ifname 'wl1'
# option steer 'rssi bssload'
# list exclude '00:11:22:33:44:55'
# list exclude_btm '00:aa:bb:cc:dd:ee'
# option band '5'
#config bk-iface
# option ifname 'apclii0'
# option enabled '1'
# option onboarded '0'
# option disallow_bsta '1 # bitmap, 1 for disallow p1, 2 to disallow p2, 3 to disallow both (probably never applicable)
config steer-param 'rssi'
option priority '0'
option rssi_threshold '-68'
option hysteresis '5'
option margin '3'
option diffsnr '8'
config steer-param 'bssload'
option priority '0'
option bssload_threshold '80'
### custom rules follows ###
config rule-custom
option action steer
option sta 'd8:32:e3:4d:35:d2'
option bss '00:22:07:11:22:33'
config rule-custom
option action restrict
option sta 'd8:32:e3:4d:35:d2'
option bss '00:22:07:11:22:33'
#config bk-iface
# option ifname 'wlan1_1'
#
#config fh-iface
# option ifname 'wlan0'
#
#config fh-iface
# option ifname 'wlan1'

View File

@@ -0,0 +1,29 @@
#!/bin/sh
wan=$(db -q get hw.board.ethernetWanPort)
[ -z "$wan" ] && exit 1 # no configuration
[ "$PORT" != "$wan" ] && exit 0
update_bstas() {
local section="$1"
local action="$2"
local ifname onboarded
config_get ifname "$section" ifname
config_get_bool onboarded "$section" onboarded 0
[ "$onboarded" -eq 0 ] && return
wpa_cli -i "$ifname" "$action" > /dev/null 2>&1
}
if [ "$LINK" = "up" ]; then
touch /tmp/map.agent.bsta_global_disable
config_load "mapagent"
config_foreach update_bstas bk-iface disconnect
else
rm -f /tmp/map.agent.bsta_global_disable
config_load "mapagent"
config_foreach update_bstas bk-iface reconnect
fi

View File

@@ -0,0 +1,46 @@
#!/bin/sh
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
[ "$LINK" == "up" ] || exit 0
[ "$PORT" == "" ] && exit 1
ubus list ieee1905 > /dev/null 2>&1
rc="$?"
[ "$rc" != 0 ] && exit 1
issue_discovery() {
local iface="$1"
res=$(ubus -t5 call ieee1905 buildcmdu "{\"type\":0, \"ifname\":\"${iface}\"}")
json_load "$res" > /dev/null 2>&1
json_get_var data data
[ "$data" == "" ] && return
ubus call ieee1905 cmdu "{\"dst\":\"01:80:c2:00:00:13\", \"type\":0, \"data\":\"${data}\"}"
}
process_vlans() {
section="$1"
config_get ifname "$section" ifname
config_get name "$section" name
[ "$2" == "$ifname" ] || return
[ "$name" == "" ] && return
issue_discovery $name
json_cleanup
}
# find and publish over any vlans
config_load network
config_foreach process_vlans interface $PORT
config_foreach process_vlans device $PORT
issue_discovery $PORT

View File

@@ -6,6 +6,16 @@ STOP=20
USE_PROCD=1
start_service() {
config_load "mapagent"
ubus -t 5 wait_for wifi
sleep 2
local enabled
config_get_bool enabled agent enabled 1
[ "$enabled" -eq 0 ] && return 1
procd_open_instance
procd_set_param command "/usr/sbin/mapagent" "-d"
procd_set_param respawn

243
map-agent/files/lib/wifi/multiap Executable file
View File

@@ -0,0 +1,243 @@
#!/bin/sh
# functions
# wireless_teardown - tear down ifaces based on mapagent config
# setup_network - prepare /etc/config/network if necessary
# setup_wireless - prepare /etc/config/wireless based on mapagent config
# write_credentials - write bBSS credentials to fBSS
. /lib/functions.sh
diff=0
usage() {
cat <<EOF
Usage: $0 [wireless_teardown|setup_network|setup_wireless|write_credentials]
Platform specific Multi-AP script to prepare network and wifi subsystem based on
mapagent configuration.
wireless_teardown - tear down ifaces in /etc/config/wireless
setup_network - prepare /etc/config/network
setup_wireless - prepare /etc/config/wireless
write_credentials - write bBSS credentials to fBSS
EOF
exit 1
}
brcm_sync_credentials() {
bands=""
mapagent_process_fh() {
local section=$1
local dev=$2
config_get device $section device
[ "$dev" != "$device" ] && return
config_get band $section band
config_get ssid $section ssid
config_get encryption $section encryption
config_get key $section key
section=$(uci add ieee1905 ap)
[ "$section" == "" ] && return
uci set ieee1905.${section}.band=$band
uci set ieee1905.${section}.ssid=$ssid
uci set ieee1905.${section}.encryption=$encryption
uci set ieee1905.${section}.key=$key
}
mapagent_process_radio() {
local section=$1
config_get device $section device
config_get band $section band
config_get dedicated_backhaul $section dedicated_backhaul 0
[ "$dedicated_backhaul" != "0" ] && return
for b in $bands; do
if [ "$b" == "$band" ]; then
return
fi
done
config_foreach mapagent_process_fh fh-iface $device
bands="$bands $band"
}
ieee1905_del_ap() {
local section=$1
uci -q delete ieee1905.${section}
}
config_load ieee1905
config_foreach ieee1905_del_ap ap
config_load mapagent
config_foreach mapagent_process_radio wifi-radio
uci commit ieee1905
}
brcm_write_credentials() {
config_load mapagent
mapagent_apply_wireless() {
write_wireless() {
local section=$1
local map_ifname=$2
local bk_ssid=$3
local bk_key=$4
config_get ifname $section ifname
#echo found device=$device map=$multi_ap ifname=$ifname mapifname=$map_ifname
[ "$ifname" != "$map_ifname" ] && return
#echo applying bk_ssid = $bk_ssid bk_key = $bk_key
uci -q set wireless.${section}.multi_ap_backhaul_ssid="$bk_ssid"
uci -q set wireless.${section}.multi_ap_backhaul_key="$bk_key"
}
config_load wireless
config_foreach write_wireless wifi-iface $1 $2 $3
}
mapagent_find_fbss() {
local section=$1
local dev=$2
local bk_ssid=$3
local bk_key=$4
config_get device $section device
config_get multi_ap $section multi_ap "0"
#echo found dev=$dev device=$device map=$multi_ap
[ "$device" != "$dev" ] && return
[ "$multi_ap" != "2" ] && return
config_get ifname $section ifname
#echo applying bk_ssid = $bk_ssid bk_key = $bk_key
# subshell in hopes to maintain mapagent config loaded
$(mapagent_apply_wireless $ifname $bk_ssid $bk_key)
}
mapagent_find_bbss() {
local section=$1
local dev=$2
config_get device $section device
config_get multi_ap $section multi_ap "0"
#echo found dev=$dev device=$device map=$multi_ap
[ "$device" != "$dev" ] && return
[ "$multi_ap" != "1" ] && return
config_get ssid $1 ssid
config_get key $1 key
#echo found ssid=$ssid key=$key
config_foreach mapagent_find_fbss fh-iface $dev $ssid $key
}
mapagent_process_radio() {
local section=$1
config_get device $section device
#echo found dev=$dev
config_foreach mapagent_find_bbss fh-iface $device
}
config_foreach mapagent_process_radio wifi-radio
uci commit wireless
}
bsta_steer() {
local ifname=$1
local bssid=$2
wpa_cli -i $ifname set_n 0 bssid $bssid
wpa_cli -i $ifname roam $bssid
}
write_bsta_config() {
local ifname=$1
#echo diff = $diff > /dev/console
config_load mapagent
mapagent_apply_wl_bsta() {
apply_config() {
local section=$1
local bsta=$2
local bssid=$3
config_get ifname $section ifname
[ "$bsta" == "$ifname" ] || return
#echo setting diff = $diff > /dev/console
uci set wireless.${section}.bssid=$bssid
echo 1
}
config_load wireless
config_foreach apply_config wifi-iface $1 $2
uci commit wireless
}
mapagent_process_bk() {
local section=$1
local bsta=$2
config_get ifname $section ifname
#echo bsta = $bsta > /dev/console
[ "$bsta" == "$ifname" ] || return
#echo found ifname=$ifname > /dev/console
config_get bssid $section bssid
ret=$(mapagent_apply_wl_bsta $ifname $bssid)
[ "$ret" == "1" ] && diff=1
}
config_foreach mapagent_process_bk bk-iface $ifname
#echo result diff = $diff > /dev/console
[ "$diff" == "1" ] && {
ubus call uci commit '{"config":"wireless"}'
#echo reloading wireless > /dev/console
}
}
func=$1
shift
case "$func" in
wireless_teardown) brcm_wireless_teardown;;
setup_network) brcm_setup_network;;
setup_wireless) brcm_setup_wireless;;
write_credentials) brcm_write_credentials;;
sync_credentials) brcm_sync_credentials;;
bsta_steer) bsta_steer $@;;
write_bsta_config) write_bsta_config $@;;
--help|help) usage;;
*) usage; exit 1;;
esac

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-controller
PKG_VERSION:=2.0.3
PKG_VERSION:=4.0.1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=ae4d7c0279cf2f40b8f3ae0afa3e0f004e27e1f5
PKG_SOURCE_VERSION:=3e6e113fdbfdb8a2e230fc74ebe8a36f9696ede2
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE_FILES:=LICENSE
@@ -15,6 +15,10 @@ PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git@dev.iopsys.eu:iopsys/map-controller.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
PKG_BUILD_DEPENDS:=map-plugin
include $(INCLUDE_DIR)/package.mk
@@ -22,7 +26,7 @@ define Package/map-controller
SECTION:=utils
CATEGORY:=Utilities
TITLE:=WiFi Multi-AP Controller (EasyMesh R2)
DEPENDS:=+libuci +libubox +ubus +libmaputils +libwsc
DEPENDS:=+libuci +libubox +ubus +libeasy +libieee1905 +ieee1905 +map-plugin
endef
define Package/map-controller/description

View File

@@ -1,21 +1,28 @@
config wificntlr
config controller 'controller'
option enabled '1'
option registrar '5 2' #bands on which wps registrar supported
option debug '6'
option al_bridge 'br-lan'
config vlan 'lan'
option network 'lan'
option id '1'
config fh-credentials
option band '5'
option encryption 'psk2'
option key '1234567890'
option ssid 'map-net5'
option vlan '101'
option vlan '1'
config fh-credentials
option band '2'
option encryption 'psk2'
option key '1234567890'
option ssid 'map-net2'
option vlan '0' # 0 - 2 rsvd, 3 - 4094 => vlan id
# option bk_ssid 'multiap_ssid123'
# option bk_key 'multiap_key123'
option vlan '1'
config bk-credentials
option band '5'
@@ -23,10 +30,9 @@ config bk-credentials
option key '5555555555'
option ssid 'map-bkhaul-5'
option multi_ap '2'
# option multi_ap_backhaul_sta '1' # possible future TODO
# option multi_ap_backhaul_key 'multiap_key123' # possible future TODO
# option multi_ap_backhaul_ssid 'MultiAP-0022077E9CD6' # possible future TODO
option disallow_bsta '1' # bitmap, 1 for disallow p1, 2 to disallow p2, 3 to disallow both (probably never applicable)
option vlan '1'
config bk-credentials
option band '2'
@@ -34,78 +40,5 @@ config bk-credentials
option key '2222222222'
option ssid 'map-bkhaul-2'
option multi_ap '2'
# option multi_ap_backhaul_sta '1' # possible future TODO
# option multi_ap_backhaul_key 'multiap_key123' # possible future TODO
# option multi_ap_backhaul_ssid 'MultiAP-0022077E9CD6' # possible future TODO
option disallow_bsta '0' # 0 or 1 profile-1 bSTA
config agent-policy
option agent_id '00:22:07:7E:9C:D6' # 1905al macaddress of agent
list steer_exclude '00:11:22:33:44:55'
list steer_exclude_btm '00:aa:bb:cc:dd:ee'
option steer_policy '2' # 0, 1, 2 - see MultiAP spec
option util_threshold '200' # channel-util as in BSS load
option rcpi_threshold '30' # 0 - 220 valid range
option report_scan '0' # 0 or 1 for independent sc include_sta_metric '0' # sta metric in AP metric resp
option pvid '100' # primary vlan id
option pcp_default '5' # default vlan pcp
option disallow_bsta_p1 '0' # 0 or 1 profile20 valid range
option report_scan '0' # 0 or 1 for independent scans
option report_sta_assocfails '1' # 0 or 1 - stas assoc failure
option report_metric_periodic '0' # 0, or 1 - 255 in secs
option report_rcpi_threshold '30' # 0 - 220 valid range
option report_scan '0' # 0 or 1 for independent scans
option report_sta_assocfails '1' # 0 or 1 - stas assoc failure
option report_metric_periodic '0' # 0, or 1 - 255 in secs
option report_rcpi_threshold '0' # 0, or 1 - 220
option report_util_threshold '0' # 0, or channel-util value
option include_sta_stats '0' # sta stats in AP metric resp
option include_sta_metric '0' # sta metric in AP metric resp
option pvid '100' # primary vlan id
option pcp_default '5' # default vlan pcp
option disallow_bsta_p1 '0' # 0 or 1 profile-1 bSTA
option disallow_bsta_p2 '0' # 0 or 1 profile-2 bSTA
config agent-policy
option agent_id '00:00:00:00:00:00'
list steer_exclude '00:11:22:33:44:55'
list steer_exclude_btm '00:aa:bb:cc:dd:ee'
option steer_policy '2' # 0, 1, 2 - see MultiAP spec
option util_threshold '200' # channel-util as in BSS load
option rcpi_threshold '30' # 0 - 220 valid range
option report_scan '0' # 0 or 1 for independent sc include_sta_metric '0' # sta metric in AP metric resp
option pvid '100' # primary vlan id
option pcp_default '5' # default vlan pcp
option disallow_bsta_p1 '0' # 0 or 1 profile20 valid range
option report_scan '0' # 0 or 1 for independent scans
option report_sta_assocfails '1' # 0 or 1 - stas assoc failure
option report_metric_periodic '0' # 0, or 1 - 255 in secs
option report_rcpi_threshold '30' # 0 - 220 valid range
option report_scan '0' # 0 or 1 for independent scans
option report_sta_assocfails '1' # 0 or 1 - stas assoc failure
option report_metric_periodic '0' # 0, or 1 - 255 in secs
option report_rcpi_threshold '0' # 0, or 1 - 220
option report_util_threshold '0' # 0, or channel-util value
option include_sta_stats '0' # sta stats in AP metric resp
option include_sta_metric '0' # sta metric in AP metric resp
option pvid '100' # primary vlan id
option pcp_default '5' # default vlan pcp
option disallow_bsta_p1 '0' # 0 or 1 profile-1 bSTA
option disallow_bsta_p2 '0' # 0 or 1 profile-2 bSTA
config agent-policy
option agent_id '00:22:07:A3:6C:DA' # 1905al macaddress of agent
list steer_exclude '00:11:22:33:44:55'
list steer_exclude_btm '00:aa:bb:cc:dd:ee'
option steer_policy '2' # 0, 1, 2 - see MultiAP spec
option util_threshold '200' # channel-util as in BSS load
option report_metric_periodic '0' # 0, or 1 - 255 in secs
option report_rcpi_threshold '0' # 0, or 1 - 220
option report_util_threshold '0' # 0, or channel-util value
option include_sta_stats '0' # sta stats in 3:4d:35:d2'
option bss '00:22:07:11:22:33'
config rule-custom
option action restrict
option sta 'd8:32:e3:4d:35:d2'
option bss '00:22:07:11:22:33'
option vlan '1'

View File

@@ -5,9 +5,31 @@ STOP=20
USE_PROCD=1
handle_controller_select() {
local section="$1"
config_get_bool local_ctrl "$section" local 0
return 1
}
start_service() {
local enabled
config_load "mapcontroller"
config_get_bool enabled controller enabled 1
[ "$enabled" -eq 0 ] && return
procd_open_instance
procd_set_param command "/usr/sbin/mapcontroller" "-d"
procd_set_param command "/usr/sbin/mapcontroller" "-d"
if [ -f /etc/config/mapagent ]; then
local local_ctrl=0
config_load "mapagent"
config_foreach handle_controller_select controller_select
[ "$local_ctrl" -eq 0 ] && procd_append_param command "-w"
fi
procd_set_param respawn
# procd_set_param stdout 1
# procd_set_param stderr 1
@@ -16,10 +38,24 @@ start_service() {
service_triggers()
{
procd_add_reload_trigger "ieee1905"
procd_add_reload_trigger "mapcontroller"
}
reload_service() {
stop
start
local enabled
config_load "mapcontroller"
config_get_bool enabled controller enabled 1
if [ "$enabled" -eq 0 ]; then
stop
return
fi
pidof "mapcontroller" > /dev/null
if [[ $? -ne 0 ]] ; then
start
return
fi
procd_send_signal "mapcontroller"
}

View File

@@ -6,14 +6,15 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology
PKG_VERSION:=1.5.6
PKG_VERSION:=2.1.4
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=8d008ef712227986263e9a2a1b188ce3a27e17f8
PKG_SOURCE_VERSION:=eb6500963156865b74c2373c11366861ad75bf45
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -24,7 +25,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/map-topology
CATEGORY:=Utilities
DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \
+libieee1905 +libavahi-nodbus-support
+libieee1905 +map-plugin +libavahi-nodbus-support
TITLE:=Utility to build topology of a multi-AP network
endef

View File

@@ -0,0 +1,4 @@
config global 'global'
option ageing_timer '1440'
option reboot_persistent '0'

View File

@@ -16,10 +16,9 @@ start_service() {
service_triggers()
{
procd_add_reload_trigger "ieee1905"
procd_add_reload_trigger "network"
}
reload_service() {
stop
start
procd_send_signal "topologyd"
}

View File

@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mcastmngr
PKG_VERSION:=1.0.0
PKG_VERSION:=1.0.1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@@ -35,7 +35,6 @@ generate_mcast_config(){
uci set mcast.@proxy[-1].last_member_query_interval="10"
uci set mcast.@proxy[-1].fast_leave="1"
uci set mcast.@proxy[-1].snooping_mode="2"
uci set mcast.@proxy[-1].lan_to_lan="0"
uci add_list mcast.@proxy[-1].downstream_interface="br-lan"
IFS=" "
@@ -51,6 +50,9 @@ if [ -s "/etc/config/mcast" ]; then
if uci -q get mcast.@proxy[0] >/dev/null; then
# return if there is any valid content
exit
elif uci -q get mcast.@snooping[0] >/dev/null; then
# return if there is any valid content
exit
else
rm -f /etc/config/mcast
fi

View File

@@ -60,7 +60,6 @@ mld_p_down_interfaces=""
mld_p_exceptions=""
# Standard parameters need by BCM's multicast daemon
l_2_l_mcast=0
allow_brdevice=0
proxdevs=""
@@ -89,7 +88,6 @@ read_snooping() {
config_get igmp_s_mode "$config" snooping_mode 0
config_get igmp_s_iface "$config" interface
config_get igmp_s_exceptions "$config" filter
config_get l_2_l_mcast "$config" lan_to_lan
return
fi
@@ -104,7 +102,6 @@ read_snooping() {
config_get mld_s_mode "$config" snooping_mode 0
config_get mld_s_iface "$config" interface
config_get mld_s_exceptions "$config" filter
config_get l_2_l_mcast "$config" lan_to_lan
return
fi
}
@@ -133,7 +130,6 @@ read_proxy() {
config_get igmp_p_up_interfaces "$config" upstream_interface
config_get igmp_p_down_interfaces "$config" downstream_interface
config_get igmp_p_exceptions "$config" filter
config_get l_2_l_mcast "$config" lan_to_lan
return
fi
@@ -149,7 +145,6 @@ read_proxy() {
config_get mld_p_up_interfaces "$config" upstream_interface
config_get mld_p_down_interfaces "$config" downstream_interface
config_get mld_p_exceptions "$config" filter
config_get l_2_l_mcast "$config" lan_to_lan
return
fi
}
@@ -187,8 +182,6 @@ config_snooping_on_bridge() {
br-*)
# set snooping mode on the bridge
bcmmcastctl mode -i $snpif -p $bcm_mcast_p -m $3
# set L2L snooping mode on the bridge
bcmmcastctl l2l -i $snpif -p $bcm_mcast_p -e $l_2_l_mcast # set L2L snooping mode on the bridge
;;
esac
done
@@ -350,7 +343,6 @@ disable_snooping() {
for br in $(brctl show | grep 'br-' | awk '{print$1}' | tr '\n' ' '); do
bcmmcastctl mode -i $br -p $bcm_mcast_p -m 0 # disable snooping on all bridges
bcmmcastctl l2l -i $br -p $bcm_mcast_p -e 0 # disable L2L snooping on all bridges
done
}

View File

@@ -13,6 +13,7 @@ PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wifilife-testbed.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

View File

@@ -1,42 +0,0 @@
#
# Copyright (C) 2006-2008 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:=natalie-dect-h
PKG_VERSION:=12.26
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_URL:=https://dev.iopsys.eu/dialog/natalie-dect-h.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=f3889dc3f80bed10374f46430009aca24448bdcc
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=PROPRIETARY RTX
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/kernel.mk
define Package/natalie-dect-h
SECTION:=net
CATEGORY:=Base system
TITLE:=Dect stack headers
URL:=
endef
define Package/natalie-dect-h/description
Kernel dect driver headers
endef
define Package/natalie-dect-h/install
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/natalie-dect
$(CP) -r $(PKG_BUILD_DIR)/SrcHeaders/* $(STAGING_DIR)/usr/include/natalie-dect/
endef
$(eval $(call BuildPackage,natalie-dect-h))

View File

@@ -1,4 +0,0 @@
config NATALIE_OPEN
bool "Use pre-compiled version for Open SDK"
default n

View File

@@ -1,73 +0,0 @@
#
# Copyright (C) 2019 IOPSYS Software Solutions AB
#
include $(TOPDIR)/rules.mk
PKG_NAME:=natalie-dect
PKG_VERSION:=12.26
PKG_SOURCE_VERSION:=378c404fba3efc8f1bcde54370a5370670fa1853
ifeq ($(CONFIG_NATALIE_OPEN),y)
BRCM_KERNEL_PROFILE=$(shell echo $(CONFIG_BCM_KERNEL_PROFILE) | sed s/\"//g)
PKG_SOURCE:=$(PKG_NAME)-$(BRCM_KERNEL_PROFILE)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_URL:=https://download.iopsys.eu/iopsys/opensdk/
PKG_NAME:=natalie-dect-open
else
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_URL:=https://dev.iopsys.eu/dialog/natalie-dect-12.26.git
PKG_SOURCE_PROTO:=git
endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=PROPRIETARY
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/kernel.mk
BCM_KERNEL_VERSION=`cat $(BUILD_DIR)/bcmkernel/bcm963xx/kernel/linux-*/include/config/kernel.release`
export BUILD_DIR
export BCM_KERNEL_VERSION
export CONFIG_BCM_CHIP_ID := $(patsubst "%",%,$(CONFIG_BCM_CHIP_ID))
export CONFIG_BCM_KERNEL_PROFILE := $(patsubst "%",%,$(CONFIG_BCM_KERNEL_PROFILE))
export CONFIG_ARCH := $(patsubst "%",%,$(CONFIG_ARCH))
export TOOLS := $(CONFIG_BCM_TOOLCHAIN)/usr/bin/
export TOOLPREFIX := $(CONFIG_BCM_TOOLTUPLE)
export BRCM_MAX_JOBS := $(patsubst "%",%,$(CONFIG_BRCM_MAX_JOBS))
export MAKE_J
export BRCM_VERBOSE := $(if $(findstring c,$(OPENWRT_VERBOSE)),1,)
export PKG_BUILD_DIR
export BCM_SDK_PATH := $(BUILD_DIR)/bcmkernel/bcm963xx
define Package/natalie-dect
SECTION:=net
CATEGORY:=Base system
TITLE:=Dect stack
URL:=
DEPENDS:=bcmkernel
endef
define Package/natalie-dect/config
source "$(SOURCE)/Config.in"
endef
define Package/natalie-dect/description
Kernel dect driver
endef
ifeq ($(CONFIG_NATALIE_OPEN),y)
define Build/Compile
endef
endif
define Package/natalie-dect/install
$(INSTALL_DIR) $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra
$(CP) $(PKG_BUILD_DIR)/dect.ko $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/dect.ko
endef
$(eval $(call BuildPackage,natalie-dect))

View File

@@ -13,8 +13,8 @@ PKG_VERSION:=0.2.0
PKG_SOURCE_VERSION:=5c8abbdf86e4651c7c6f14f784cfb52e69979f96
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/netmoded
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

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