Compare commits

..

281 Commits

Author SHA1 Message Date
Jakob Olsson
0d1e06ec6c map-agent: prints to debug invalid backhaul set 2022-07-15 12:46:21 +02:00
suvendhu
387be147e6 icwmp: fix icwmpd infinite restart 2022-07-14 15:59:10 +05:30
vdutta
75988519f5 icwmp: 8.4.24 2022-07-14 15:58:57 +05:30
Jakob Olsson
f46f994ce2 map-controller: 2.8.0.5 2022-07-13 17:46:27 +02:00
Jakob Olsson
40a43b643c map-topology: 2.5.0.7 2022-07-13 13:35:38 +02:00
Anjan Chanda
80fe362716 ieee1905: 4.10.3 2022-07-12 15:52:09 +02:00
Jakob Olsson
72b385e50f map-agent: 2.9.0.4 2022-07-12 15:06:36 +02:00
Jakob Olsson
853f895c6d map-controller: 2.8.0.4 2022-07-12 09:56:03 +02:00
Jakob Olsson
03b1576b8d map-agent: 2.9.0.3 2022-07-12 09:56:03 +02:00
Jakob Olsson
6e738b7fcb ieee1905: 4.9.9 2022-07-12 09:56:03 +02:00
Amin Ben Ramdhane
5b3e5d157d bbf: 6.8.7 2022-07-11 19:22:53 +05:30
vdutta
018a530f35 icwmp: 8.4.23 2022-07-11 15:57:48 +05:30
Jakob Olsson
12d3905280 ieee1905: add default script setting alid 2022-07-08 13:55:30 +02:00
Jakob Olsson
47b176a94c Map-agent: 2.9.0.2 2022-07-06 22:18:29 +02:00
Sukru Senli
12ff0f953d sulu: 1.0.12 2022-07-06 17:09:18 +02:00
Jakob Olsson
47a250754f map-controller: 2.8.0.3 2022-07-06 17:07:43 +02:00
Jakob Olsson
5b0e926cd9 ieee1905: 4.9.8 2022-07-06 15:59:49 +02:00
Jakob Olsson
18453ce68e map-agent: 2.9.0.1 2022-07-06 15:50:29 +02:00
Jakob Olsson
12645e7525 map-controller: 2.8.0.2 2022-07-06 15:49:30 +02:00
Sukru Senli
73e354c8cc sulu: 1.0.11 2022-07-06 10:33:46 +02:00
Jakob Olsson
abdd812601 map-agent: simplify pvid unset default script 2022-07-01 16:58:54 +02:00
Jakob Olsson
e56c279786 map-agent: add uci-default script setting pvid to 0 2022-07-01 16:33:34 +02:00
Yalu Zhang
e01fbf3fad Update package bbf: Fix voice CallLog filter
Fix the SIP response code handling and optimization
(cherry picked from commit d70c637aa4)
2022-07-01 14:00:21 +00:00
Amin Ben Ramdhane
22b37efad9 bbf: 6.8.6 2022-06-30 14:30:57 +02:00
Jakob Olsson
5628a1bee6 ieee1905: 4.9.7 2022-06-30 14:23:44 +02:00
Janusz Dziedzic
6d9c8d1090 map-agent: check no HT configured
We hit this on arcee - simplest workaround.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-06-29 16:58:51 +00:00
vdutta
dee5ea0da3 icwmp: 8.4.22 2022-06-29 21:01:31 +05:30
Jakob Olsson
0c6dad2c58 ieee1905: 4.9.6 2022-06-29 16:43:30 +02:00
Amin Ben Ramdhane
f9cd9c627e bbf: 6.8.5 2022-06-28 21:41:44 +05:30
Grzegorz Sluja
31f03a7b47 dectmngr-3.5.4: Fix for setting extension_id for handset 2022-06-28 17:27:23 +02:00
Jakob Olsson
50d2408ddb map-topology: 2.5.0.6 2022-06-28 14:15:00 +02:00
Amin Ben Ramdhane
79f5bbd0cf bbf: 6.8.4 2022-06-28 15:43:42 +05:30
Amin Ben Ramdhane
58fdac62b0 icwmp: 8.4.21 2022-06-28 15:43:20 +05:30
Amin Ben Ramdhane
32192f5423 icwmp: regenerate ssl link in boot() 2022-06-28 09:05:39 +05:30
Amin Ben Ramdhane
35bb02b726 bbf: 6.8.2 2022-06-27 20:31:30 +05:30
vdutta
77536709f0 bbf: 6.8.1 2022-06-24 13:19:15 +05:30
vdutta
e67a5e505f icwmp: 8.4.20 2022-06-24 13:18:45 +05:30
vdutta
cd7826de33 obuspa: 5.0.0.16 2022-06-24 13:18:22 +05:30
vdutta
c09a4a0ca5 uspd: Move TransferComplete event to obuspa 2022-06-24 13:17:30 +05:30
Grzegorz Sluja
49e7f2e349 dectmngr: Fix for setting extension_id for handset 2022-06-24 09:45:24 +02:00
vdutta
44e614d8e2 inbd: Fix static code analysis warnings 2022-06-24 00:09:28 +02:00
Jakob Olsson
dba358a542 map-agent: traffic_separation: reload netifd by ubus call uci commit 2022-06-23 12:02:40 +02:00
vdutta
6688812576 obuspa: 5.0.0.15 2022-06-23 15:26:32 +05:30
vdutta
9b14d0574f icwmp: 8.4.19 2022-06-23 15:19:09 +05:30
Amin Ben Ramdhane
82bf3bbba4 bbf: 6.8.0 2022-06-23 15:18:06 +05:30
Amin Ben Ramdhane
311273865d bbf: 6.7.9 2022-06-23 15:17:44 +05:30
vdutta
e64714e538 obuspa: Added option to verify the mqtt received topic 2022-06-23 15:15:07 +05:30
Jakob Olsson
f29ade1e60 map-topology: 2.5.0.5 2022-06-22 13:48:00 +02:00
vdutta
ddf6d7ba32 icwmp: 8.4.18 2022-06-22 11:10:29 +05:30
suvendhu
803be5fcad icwmp: 8.4.17 2022-06-22 11:10:00 +05:30
Amin Ben Ramdhane
08abbdfe5b periodicstats: 1.2.0 2022-06-22 11:09:32 +05:30
Grzegorz Sluja
3ad949442c Update package endptmngr
Return to the first call without playing any tones on DECT handset when the second call ends
2022-06-21 15:20:44 +02:00
Jakob Olsson
6b37f2fccb map-controller: 2.8.0.1 2022-06-17 13:51:08 +02:00
Jakob Olsson
8d3aa2aa60 map-controller: 2.8.0.0 2022-06-17 11:07:01 +02:00
Jakob Olsson
9f5d5eb347 map-agent: 2.9.0.0 2022-06-17 11:07:01 +02:00
Stanislaw Gruszka
2d9a47073b map-agent: ts: reload firewall 2022-06-16 17:55:41 +02:00
Stanislaw Gruszka
dc0ab5dbd3 map-agent: ts: configure firewall 2022-06-16 17:55:41 +02:00
Stanislaw Gruszka
f513b5ba46 map-agent: traffic separation script rework 2022-06-16 17:55:41 +02:00
vdutta
aa5e98a35c obuspa: 5.0.0.13 2022-06-16 19:27:56 +05:30
Amin Ben Ramdhane
051c6f2cc1 bbf: 6.7.8 2022-06-16 19:27:30 +05:30
vdutta
aa2a78e211 obuspa: 5.0.0.12 2022-06-15 20:30:34 +05:30
vdutta
063d20932a urlfilter: 1.1.3 2022-06-15 17:57:09 +05:30
vdutta
59752df3d4 bbf: 6.7.7 2022-06-15 17:56:33 +05:30
Grzegorz Sluja
66f28e376d endptmngr: Fixes for call waiting and 3way call scenarios 2022-06-15 10:32:41 +02:00
Jakob Olsson
fbb6a84da8 map-agent: add missing uci validation and new cfg option to default 2022-06-14 15:13:13 +02:00
vdutta
bcd8b4f010 bbf: 6.7.6 2022-06-14 18:34:26 +05:30
vdutta
e98ef22bc5 icwmp: 8.4.16 2022-06-14 18:33:59 +05:30
Jakob Olsson
c45938f5ad map-topology: 2.5.0.4 2022-06-14 09:50:03 +02:00
Jakob Olsson
05b24396af map-agent: 2.8.1.2 2022-06-13 17:34:57 +02:00
Jakob Olsson
ba0e9e25ba map-agent: 2.8.1.1 2022-06-13 17:21:10 +02:00
Jakob Olsson
a6005cb439 map-agent: 2.8.1.0 2022-06-13 16:50:32 +02:00
Jakob Olsson
3ebb026453 map-agent: multiap: manage wpa_supplicant bssid_ignore 2022-06-13 16:50:32 +02:00
Jakob Olsson
921b0fc335 map-agent: multiap: introduce func to clear bssid of all bstas 2022-06-13 16:04:00 +02:00
vdutta
10eeef5a32 bbf: 6.7.5 2022-06-10 20:15:17 +05:30
vdutta
a55c39c32e uspd: 2.2.10 2022-06-10 20:12:26 +05:30
vdutta
70422f048b icwmp: 8.4.15 2022-06-10 18:42:05 +05:30
Jakob Olsson
8670fb8e7d map-topology: 2.5.0.3 2022-06-10 10:51:46 +02:00
Jakob Olsson
54ddfb5b2d map-topology: 2.5.0.2 2022-06-09 14:17:58 +02:00
Amin Ben Ramdhane
e8cdea9a79 bbf: 6.7.5 2022-06-09 17:09:43 +05:30
Amin Ben Ramdhane
7613b55f49 uspd: 2.2.9 2022-06-09 16:10:03 +05:30
Amin Ben Ramdhane
ecc65760b7 bbf: 6.7.3 2022-06-09 16:10:03 +05:30
Amit Kumar
053c36c1c7 qosmngr: updated QoS clasification
l3 iptables rule with ethx was not matching this was causing incorrect classification to wrong queue.
ebtables rule correction done with ethertype,protocol and port to classify packet for destination queue.
2022-06-09 06:31:02 +00:00
Grzegorz Sluja
7d9325abff dectmngr: Fix scenario when active call hangs up and return to onhold call 2022-06-08 17:55:07 +02:00
vdutta
baee22e19f urlfilter: 1.1.2 2022-06-08 19:57:25 +05:30
vdutta
cc765c2704 uspd: 2.2.8 2022-06-08 09:34:43 +05:30
vdutta
2ae8cd2987 bbf: 6.7.2 2022-06-08 09:33:47 +05:30
Sukru Senli
1ce681afac sulu: 1.0.10 2022-06-07 19:59:59 +02:00
vdutta
b66629350d icwmp: 8.4.14 2022-06-07 20:53:57 +05:30
vdutta
3a6dce64de stunc: 1.1.11 2022-06-07 19:13:09 +05:30
Jakob Olsson
fbf4c2d7ed map-topology: 2.5.0.1 2022-06-03 17:07:09 +02:00
Yalu Zhang
57386b0e87 Update packages endptmngr and dectmngr
Support call waiting and 3 way call for DECT
2022-06-03 13:58:32 +02:00
Jakob Olsson
37505a1c24 map-agent: 2.8.0.5 2022-06-03 09:36:44 +02:00
Jakob Olsson
4b28a1cd4a map-agent: 2.8.0.4 2022-06-02 15:16:25 +02:00
Jakob Olsson
26fff3a9ac wfadatad: 2.8.0.1 2022-06-02 09:59:34 +02:00
Jakob Olsson
fe3592b382 map-controller: 2.7.0.1 2022-06-01 10:17:23 +02:00
Jakob Olsson
78cc239b3d map-agent: 2.8.0.3 2022-05-31 15:58:50 +02:00
Yalu Zhang
714c822e7d Update package endptmngr and dectmngr
dectmngr-3.5.2: Release the call completely when the first handset rejects an incoming call
endptmngr: Send CALL_REJECT event to Asterisk when DECT handset rejects the call
2022-05-31 14:48:56 +02:00
Anjan Chanda
d5d8cbff6e ieee1905: 4.9.5 2022-05-31 10:57:28 +02:00
Jakob Olsson
66f5f5315a map-agent: 2.8.0.2 2022-05-30 17:08:09 +02:00
Jakob Olsson
96a8f4f8fa map-agent: 2.8.0.1 2022-05-30 16:05:12 +02:00
Jakob Olsson
80b71b4a9c map-agent: 2.8.0.0 with new license update for release-6.5 2022-05-30 14:49:31 +02:00
Jakob Olsson
cb86ec3c50 Revert "map-agent: 2.8.0.0 with new license update"
This reverts commit 2e30eb75b5.
2022-05-30 14:48:18 +02:00
Sukru Senli
6451da621d wfadatad: 2.8.0.0 BSD-3-Clause license change 2022-05-30 14:41:11 +02:00
Sukru Senli
8596640c59 map-agent: update license to BSD-3-Clause 2022-05-30 14:35:42 +02:00
Sukru Senli
e61adabad1 map-controller: update license to BSD-3-Clause 2022-05-30 14:35:29 +02:00
Sukru Senli
2e30eb75b5 map-agent: 2.8.0.0 with new license update 2022-05-30 13:28:22 +02:00
Sukru Senli
b00dbbfc16 map-topology: 2.5.0.0 with new license update 2022-05-30 13:24:34 +02:00
suvendhu
7acb31977c twamp: 1.2.0 2022-05-30 14:19:21 +05:30
Jakob Olsson
8f075c2dde map-agent: 2.7.2.6 2022-05-30 10:33:31 +02:00
Sukru Senli
15ab530afb usp-js: add license 2022-05-28 18:38:18 +02:00
Sukru Senli
d7d28d4d53 smwodd: add license 2022-05-28 18:34:41 +02:00
Sukru Senli
ac05fc5e09 map-topology: correct license 2022-05-28 18:07:20 +02:00
Sukru Senli
affd3a59ee shflags: remove unused package 2022-05-28 18:07:17 +02:00
Sukru Senli
702558940f libmicroxml: remove unused package 2022-05-28 18:07:09 +02:00
Sukru Senli
96af293828 sulu: 1.0.9 2022-05-27 16:07:31 +02:00
vdutta
9220eaab7f bbf: 6.6.43 2022-05-26 18:56:25 +05:30
Jakob Olsson
d2e6343808 map-topology: 2.4.0.5 2022-05-25 18:52:49 +02:00
sverma
8b71e43391 wfadatad: 2.7.0.7 2022-05-25 20:42:01 +05:30
Sukru Senli
b12b3dcf79 sulu: 1.0.8 2022-05-25 17:08:48 +02:00
vdutta
2af76e93d6 bbf: 6.6.42 2022-05-25 20:10:31 +05:30
Jakob Olsson
8eff3b57e7 map-agent: 2.7.2.5 2022-05-25 16:31:56 +02:00
vdutta
24470ed5f8 icwmp: 8.4.12 2022-05-25 19:40:16 +05:30
Sukru Senli
aba55434de sulu: 1.0.7 2022-05-25 15:33:40 +02:00
vdutta
49a4936cc0 swmodd: 2.1.5 2022-05-25 18:17:30 +05:30
vdutta
1d63ac6583 questd: 5.2.4 2022-05-25 18:13:52 +05:30
vdutta
bb9f180b77 rulengd: 1.2.7 2022-05-25 18:13:28 +05:30
Jakob Olsson
64c624c281 ieee1905: 4.9.2 2022-05-25 12:40:59 +02:00
vdutta
d7946e13f1 bbf: 6.6.41 2022-05-24 19:18:44 +05:30
vdutta
baa19aad3f bbf: Heartbeat support 2022-05-24 19:12:42 +05:30
vdutta
48c0d51e0e icwmp: Heartbeat support 2022-05-24 19:12:01 +05:30
vdutta
f0301c8a45 bbf: 6.6.39 2022-05-24 11:59:32 +05:30
vdutta
458a57bbb7 swmodd: 2.1.4 2022-05-24 11:58:55 +05:30
Sukru Senli
ebcee30bce sulu: 1.0.6 2022-05-23 11:41:00 +02:00
Sukru Senli
34f90babf5 sulu: 1.0.5 2022-05-20 15:44:41 +02:00
Jakob Olsson
34dc1fed4b map-topology: 2.4.0.4 2022-05-20 13:09:08 +02:00
vdutta
7633ca403c periodicstats: 1.1.3 2022-05-20 10:15:46 +05:30
vdutta
ec392c923c icwmp: 8.4.10 2022-05-20 10:14:59 +05:30
Stanislaw Gruszka
24205bf73f iop: config: enable ip-bridge 2022-05-19 14:42:33 +00:00
Jakob Olsson
76b1e43b6f map-topology: 2.4.0.3 2022-05-19 14:52:09 +02:00
Jakob Olsson
4672afb6de ieee1905: 4.9.1 2022-05-19 13:16:15 +02:00
Jakob Olsson
d2ff5738cd wfadatad: 2.7.0.6 2022-05-19 13:13:45 +02:00
Jakob Olsson
43246014e1 map-topology: 2.4.0.2 2022-05-19 13:03:44 +02:00
Amin Ben Ramdhane
115b752ade bbf: 6.6.38
(cherry picked from commit 62935f5016)
2022-05-19 03:26:06 +00:00
Amin Ben Ramdhane
26b06548f6 udpecho: 2.0.1
(cherry picked from commit 3b7b6fd627)
2022-05-19 03:25:18 +00:00
vdutta
6c99b9fc72 icwmp: 8.4.9
(cherry picked from commit d68a6add62)
2022-05-19 03:24:23 +00:00
vdutta
135ebebd44 stunc: 1.1.9
(cherry picked from commit 12b6a72a48)
2022-05-19 03:23:13 +00:00
Jakob Olsson
2d188b5c37 map-agent: 2.7.2.4 2022-05-18 14:53:58 +02:00
Amit KUmar
14ce1429a4 map-topology: per host statistics collection
included conntrack netfilter library
2022-05-18 10:32:31 +02:00
Jakob Olsson
a6b585cccf map-agent: multiap: lock operations on backhaul file 2022-05-18 10:29:40 +02:00
Amit KUmar
6db304b6ff qosmngr: WRR schdeuling configuration
sequence corrected in initialization as first tm initialization
then delcfg. porttminit bydefault does queue configuration as SP.
2022-05-17 17:07:46 +02:00
Amin Ben Ramdhane
817a7e8301 bbf: 6.6.37 2022-05-17 17:06:49 +02:00
Jakob Olsson
e8790801d0 map: prepend all multiap packages version number with the supported revision 2022-05-17 15:11:03 +02:00
Jakob Olsson
a6790ac523 map-agent: 7.2.3 2022-05-17 15:07:40 +02:00
Jakob Olsson
76656bb043 map-controller: 6.0.22 2022-05-17 13:08:18 +02:00
Erik Karlsson
abd741b9e6 map-agent: multiap: fix subshell invocation 2022-05-16 15:12:36 +00:00
Jakob Olsson
c33fd589fb map-agent: 7.2.2 2022-05-16 14:47:43 +02:00
Jakob Olsson
b1750ac6ba map-agent: add missing option validation 2022-05-16 14:40:33 +02:00
Jakob Olsson
de51136608 map-controller: add missing option validation 2022-05-16 13:07:52 +02:00
Sukru Senli
3da3e6b86d dectmngr: do not use hardcoded gpio for dect 2022-05-16 12:54:52 +02:00
Anjan Chanda
fdba0d497a wfadatad: also wait_for 'topology' object 2022-05-16 12:02:51 +02:00
Anjan Chanda
4092c0e43f wfadatad: 7.0.5 2022-05-16 11:35:30 +02:00
Rahul
4b06b07acf ponmngr: first drop
- Most fundamental uci mapping to proposed XPON.ONU.i.ANI.i.Enable
  object in 2.16
- The init scripts to procd trigger relevant components
2022-05-13 13:36:16 +00:00
Amin Ben Ramdhane
6636e7ff47 bbf: 6.6.36 2022-05-13 11:47:29 +01:00
vdutta
ec8a7cffa2 stunc: 1.1.8 2022-05-13 14:18:33 +05:30
Amin Ben Ramdhane
41cdc9672c bbf: 6.6.35 2022-05-12 16:40:16 +01:00
Amin Ben Ramdhane
6fdf37e179 bbf: 6.6.34 2022-05-12 00:11:14 +01:00
Anjan Chanda
60c198e2e2 map-topology: fix package build dependency 2022-05-11 21:29:04 +02:00
vdutta
154b8465a6 iop: Align with udpecho 2022-05-11 20:34:11 +05:30
Amin Ben Ramdhane
d352796d46 udpecho: 2.0.0 2022-05-11 15:26:13 +01:00
Amin Ben Ramdhane
562aefcab2 bbf: 6.6.33 2022-05-11 15:25:31 +01:00
Jakob Olsson
a4c6aec761 map-agent: 7.2.1 2022-05-11 10:24:14 +02:00
vdutta
0e1894e5ff bbf: 6.6.32
- Change libbbf_api to empty package
- Generate dummy/empty libbbf_api.so to prevent linking with binaries, as
  libbbf_api only provides APIs to build plugins for libbbf datamodel
- For packages which also generate bbf datamodel plugins, it is suggested to
  use PKG_BUILD_DEPENDS:=bbf, in place of package dependency on libbbf_api
2022-05-11 12:52:23 +05:30
vdutta
ca89315960 periodicstats: 1.1.2 2022-05-11 12:51:00 +05:30
vdutta
5764f7dd1d periodicstats: 1.1.1 2022-05-10 20:03:12 +05:30
Yalu Zhang
3d2b69bd33 evoice: Change the tx/rx gain to 0 in the default config
Transmit and receive gain shall be set as 0 according to Broadcom's support.
2022-05-10 16:17:07 +02:00
Anjan Chanda
56bfdfaf57 map-topology: 4.0.1 - remove build-time dependencies on ieee1905 2022-05-10 16:11:27 +02:00
Jakob Olsson
28835fc0ea map-agent: 7.2.0 2022-05-10 16:10:08 +02:00
Jakob Olsson
0f7d057261 map-agent: multiap: set disabled upon teardown 2022-05-10 16:09:44 +02:00
vdutta
9aaef85895 icwmp: 8.4.8 2022-05-10 17:56:35 +05:30
vdutta
50e1be5214 obuspa: 5.0.0.11 2022-05-10 17:04:35 +05:30
Jakob Olsson
13f1dcfdc3 map-controller: 6.0.21 2022-05-10 10:32:08 +02:00
vdutta
545f41ab6a bulkdata: 2.0.3 2022-05-09 19:29:25 +05:30
vdutta
a5306cb837 bbf: 6.6.31 2022-05-09 16:03:14 +05:30
Jakob Olsson
415768dd71 map-controller: config: add default values for agent and node section 2022-05-09 12:01:50 +02:00
vdutta
744bd43658 icwmp: 8.4.7 2022-05-09 14:39:07 +05:30
vdutta
f6cdb4c55d bbf: 6.6.30 2022-05-09 14:37:38 +05:30
Anjan Chanda
01d009734c ieee1905: 4.8.0 2022-05-09 10:53:09 +02:00
vdutta
120e333a67 libtrace: Fix iterative compilation 2022-05-09 13:10:04 +05:30
Erik Karlsson
caf1367dd2 Preserve links while installing libraries
Use $(CP) rather than $(INSTALL_BIN) to install libraries so that
symbolic lings are not being dereferenced.
2022-05-09 07:37:22 +00:00
Sukru Senli
82d3171604 ieee1905: update example ieee1905 config 2022-05-09 09:09:12 +02:00
Sukru Senli
68b8051fb2 map-agent: update example mapagent config 2022-05-09 09:09:12 +02:00
Sukru Senli
9fc87d618b map-controller: update example mapcontroller config 2022-05-09 09:09:12 +02:00
Sukru Senli
013a2f2b19 evoice: update dependency based on target
also limit target platforms to the ones evoice supports
2022-05-07 13:30:33 +02:00
Sukru Senli
b4d831147e Revert "sulu: 1.1.0"
This reverts commit 2816342a69.
2022-05-07 13:05:47 +02:00
Sukru Senli
2816342a69 sulu: 1.1.0
new way of creating themes
2022-05-07 12:28:35 +02:00
Yalu Zhang
68bb2d48d5 evoice: Support multiple platform building 2022-05-06 16:18:50 +02:00
Yalu Zhang
4333127c74 evoice: Update UCI config files 2022-05-06 14:42:27 +02:00
Jakob Olsson
d03fa0c5e3 map-agent: 7.1.45 2022-05-06 14:06:47 +02:00
vdutta
584e3db8f0 bbf: 6.6.29 2022-05-06 15:12:34 +05:30
vdutta
4e365be18e usp-js: Added qjs version 2022-05-06 10:24:02 +05:30
Jakob Olsson
e722665f2f map-agent: 7.1.44 2022-05-05 17:15:40 +02:00
Jakob Olsson
7566301349 map-controller: 6.0.20 2022-05-05 16:35:47 +02:00
Jakob Olsson
213f840309 map-agent: 7.1.43 2022-05-05 16:04:16 +02:00
vdutta
35c58d63d7 icwmp: 8.4.6 2022-05-05 17:59:48 +05:30
Wenpeng Song
8382bcc0ac dectmngr: Call openlog() at the beginning to avoid some incomplete log messages 2022-05-05 12:12:18 +00:00
Jakob Olsson
ac32ff013e map-agent: 7.1.42 2022-05-05 12:40:51 +02:00
Jakob Olsson
3d077f2a18 map-agent: 7.1.41 2022-05-05 09:53:31 +02:00
vdutta
1d6c3b5466 obuspa: Fix assigned role index 2022-05-05 10:46:00 +05:30
Arun Muthusamy
47130407a5 urlfilter: Fix IPv6 traffic related issue 2022-05-04 16:59:11 +02:00
Jakob Olsson
9f7db62c89 map-topology: 3.2.13 2022-05-04 15:08:49 +02:00
Jakob Olsson
8d1d4b5590 wfa-capi: 1.1.2 2022-05-04 13:36:41 +02:00
Wenpeng Song
889524d9a7 dectmngr: fix handset name update issue 2022-05-04 08:54:58 +00:00
vdutta
f293fa36a7 bbf: Align LocalTimeZoneName with TZ db 2022-05-04 13:53:08 +05:30
vdutta
ab144f4af9 twamp: Align with libbbf_api 2022-05-04 13:46:36 +05:30
vdutta
621010e16b swmodd: Align with libbbf_api 2022-05-04 13:09:55 +05:30
vdutta
3f2b130848 stunc: Align with bbf_api 2022-05-04 13:07:42 +05:30
vdutta
504c78965d udpechoserver: 1.0.5 2022-05-04 12:45:36 +05:30
Yalu Zhang
c625d8dc29 evoice-0.2.1: Support FXS CLIP on Broadcom platform 2022-05-03 15:51:14 +02:00
vdutta
9234254f76 icwmp: 8.4.5 2022-05-03 17:25:01 +05:30
Sukru Senli
436751ce8f evoice: make license PROPRIETARY 2022-05-02 16:25:22 +02:00
Sukru Senli
30bf53c79c endptmngr: make license PROPRIETARY 2022-05-02 16:25:16 +02:00
vdutta
775b71b6f1 xmppc: 2.0.2 2022-05-02 19:14:13 +05:30
vdutta
cf08d70000 icwmp: 8.4.4 2022-05-02 19:00:10 +05:30
vdutta
48727867eb xmppc: 2.0.1 2022-05-02 10:48:11 +05:30
Amin Ben Ramdhane
e82294aa2f xmppc: 2.0.0 2022-05-02 04:45:35 +00:00
Amin Ben Ramdhane
768304c5a1 bbf: 6.6.27 2022-05-02 04:45:35 +00:00
Sukru Senli
00c6557d0a sulu: 1.0.4 2022-04-29 17:05:44 +02:00
Sukru Senli
1c22d7a19d evoice: bump version: 0.2.0 2022-04-29 16:24:55 +02:00
Yalu Zhang
1eb12b7923 Update package evoice
Fix a compilation error in libvoiceservice
2022-04-29 16:05:57 +02:00
Yalu Zhang
1661322307 evoice: Update Makefile to add bcmkernel in dependency list 2022-04-29 15:28:28 +02:00
Sukru Senli
a408642afa sulu: 1.0.3 2022-04-29 12:18:16 +02:00
vdutta
62b1d840dc bulkdata: 2.0.2 2022-04-29 10:33:35 +05:30
vdutta
55afadf895 stunc: 1.1.6 2022-04-28 20:05:46 +05:30
vdutta
4c4e12a8ff bulkdata: 2.0.1 2022-04-28 20:04:39 +05:30
Jakob Olsson
73c5d2c481 map-agent: 7.1.40 2022-04-28 10:42:44 +02:00
Jakob Olsson
7c041f933d wfadatad: 7.0.3 2022-04-27 16:36:48 +02:00
vdutta
fddb7e3ba7 icwmp: 8.4.3 2022-04-27 19:27:21 +05:30
Jakob Olsson
bf82f6966d map-agent: 7.1.39 2022-04-27 15:29:52 +02:00
Amin Ben Ramdhane
81a348efee bbf: 6.6.26 2022-04-27 13:24:02 +01:00
vdutta
f24602d8d4 iop: config: update bulkdata package 2022-04-27 17:26:50 +05:30
Amin Ben Ramdhane
0f5677e544 bulkdata: align with new design
- remove libbbfdm dependency
- make bulkdata run on top of ubus usp.raw object
2022-04-27 12:14:13 +01:00
Jakob Olsson
02d52bd9e1 map-agent: 7.1.38 2022-04-27 09:58:32 +02:00
Sukru Senli
acb2f35982 iop: config: remove undefined package 2022-04-26 22:27:44 +02:00
vdutta
c1ef23456b icwmp: GetRPCMethod from cpe and ssl keep update 2022-04-26 19:32:36 +05:30
Jakob Olsson
00fd54ba1b map-agent: 7.1.37 2022-04-26 14:45:08 +02:00
Amin Ben Ramdhane
3406185b1c bbf: 6.6.25 2022-04-25 18:34:21 +01:00
Jakob Olsson
6f233e19bf map-agent: 7.1.36 2022-04-25 16:04:50 +02:00
Jakob Olsson
9227f52a16 wfa-capi: 1.1.1 2022-04-25 16:03:27 +02:00
Anjan Chanda
70889fd1ae ieee1905: 4.8.0 2022-04-25 15:37:11 +02:00
Jakob Olsson
c09267da8f wfadatad: 7.0.2 2022-04-25 14:23:27 +02:00
Jakob Olsson
d4a9cde562 map-agent: 7.1.35 2022-04-22 15:31:07 +02:00
vdutta
1824013aeb udpechoserver: 1.0.4 2022-04-21 17:36:42 +05:30
Yalu Zhang
13c858421c Update package evoice
Enable the development log messages and fix compilation errors
2022-04-21 12:07:13 +02:00
Omar Kallel
a917d47854 icwmp: 8.4.1 2022-04-21 10:01:21 +01:00
Jakob Olsson
4c11a12d11 map-agent: make EASYMESH_R2_CERT compile flag selectable 2022-04-20 13:20:13 +02:00
Anjan Chanda
73a7d9cc42 config: deselect wfadatad package 2022-04-20 10:53:52 +02:00
Yalu Zhang
68a51047e9 Update package evoice
libvoiceservice updating
2022-04-20 10:50:25 +02:00
Anjan Chanda
42db3eaf5d wfadatad: 7.0.1 2022-04-20 10:39:38 +02:00
Roman Azarenko
8c867fc829 obuspa: init: fix manipulating USP_BOARD_IFNAME env var in .profile
This addresses two problems:

1. `sed 'g/export USP_BOARD_NAME/d'` would erase all the lines in the affected
file, regardless of whether there was a match or not. Replace this with
`sed '/foo/d'`, which correctly deletes just the affected lines.

2. Changing an `interface`/`ifname` in UCI configuration would end up
appending to /root/.profile due to how the control flow was written.
2022-04-20 09:11:40 +02:00
Omar Kallel
c9bc7a3dea icwmp: 8.4.0 2022-04-19 15:28:14 +01:00
Yalu Zhang
7c05f41418 eVoice: Update Makefile to build libvoiceservice.so by default 2022-04-19 11:51:13 +02:00
Anjan Chanda
47fe3342d3 ieee1905: 4.7.7 2022-04-14 16:32:15 +02:00
Sukru Senli
135b15c101 sulu: 1.0.2 2022-04-14 13:40:50 +02:00
Jakob Olsson
26a75d11f0 map-controller: 6.0.19 2022-04-14 12:37:19 +02:00
vdutta
85a20c9485 bbf: 6.6.24 2022-04-14 14:01:48 +05:30
Amin Ben Ramdhane
e239e77fdd bbf: 6.6.23 2022-04-13 15:16:11 +01:00
vdutta
4824b441b6 stunc: Fix compilation issue for wolfssl variant 2022-04-13 13:23:06 +00:00
vdutta
3bb9298485 iop: Select mbedtls variants for TRx69 packages 2022-04-13 13:23:06 +00:00
vdutta
557ed06daa bulkdata: Added ssl variants to align with bbf variants 2022-04-13 13:23:06 +00:00
vdutta
1f0e4a191c uspd: Added ssl variants 2022-04-13 13:23:06 +00:00
vdutta
03e29020e2 bbf: Added ssl variants for libbbfdm 2022-04-13 13:23:06 +00:00
vdutta
f314c20b8a obuspa: Removed build dependency from uspd 2022-04-13 13:23:06 +00:00
vdutta
5f2e737e7c icwmp: Added ssl variants 2022-04-13 13:23:06 +00:00
vdutta
0e32d885b0 stunc: Added ssl variants 2022-04-13 13:23:06 +00:00
Wenpeng Song
363ae3044e dectmngr: provide UBUS API test 2022-04-13 13:02:23 +00:00
Jakob Olsson
2f5d167976 map-agent: 7.1.34 2022-04-13 14:22:13 +02:00
Sukru Senli
558936d23d sulu: 1.0.1 2022-04-13 12:58:10 +02:00
Anjan Chanda
b946784deb ieee1905: 4.7.6 2022-04-12 20:19:16 +02:00
Amin Ben Ramdhane
7adf27bcaf bbf: 6.6.21 2022-04-12 17:12:19 +01:00
Amit KUmar
85d804d575 qosmngr: uniform code handling for qos policer
removed POLICER_SKIP check from broadcom.sh to make policer configuration
code uniform for all devices.
2022-04-12 13:02:11 +00:00
Jakob Olsson
4a756c84c7 ieee1905: 4.7.5 2022-04-12 12:47:17 +02:00
87 changed files with 2224 additions and 2362 deletions

View File

@@ -1,5 +1,3 @@
if PACKAGE_libbbfdm
config BBF_VENDOR_EXTENSION config BBF_VENDOR_EXTENSION
bool "Enable Vendor Extension" bool "Enable Vendor Extension"
default y default y
@@ -12,10 +10,6 @@ config BBF_VENDOR_PREFIX
string "Vendor Prefix" string "Vendor Prefix"
default "X_IOPSYS_EU_" default "X_IOPSYS_EU_"
config BBF_TR181
bool "Enable TR-181 Data Model Support"
default y
config BBF_TR104 config BBF_TR104
bool "Enable TR-104 Data Model Support" bool "Enable TR-104 Data Model Support"
default y default y
@@ -26,24 +20,12 @@ config BBF_TR143
config BBFDM_ENABLE_JSON_PLUGIN config BBFDM_ENABLE_JSON_PLUGIN
bool "Enable json plugin to extend datamodel" bool "Enable json plugin to extend datamodel"
default n default y
config BBFDM_ENABLE_DOTSO_PLUGIN config BBFDM_ENABLE_DOTSO_PLUGIN
bool "Enable shared library plugin to extend datamodel" bool "Enable shared library plugin to extend datamodel"
default n default y
choice config BBF_MAX_OBJECT_INSTANCES
prompt "Select SSL utility" int "Maximum number of instances per object"
default BBF_USE_WOLFSSL default 255
config BBF_USE_WOLFSSL
bool "Use WolfSSL for ssl utilities"
select CONFIG_PACKAGE_libwolfssl
config BBF_USE_OPENSSL
bool "Use OpenSSL for ssl utilities"
select CONFIG_PACKAGE_libopenssl
endchoice
endif

View File

@@ -1,42 +1,69 @@
# #
# Copyright (C) 2021 IOPSYS # Copyright (C) 2022 IOPSYS
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm PKG_NAME:=libbbfdm
PKG_VERSION:=6.6.20 PKG_VERSION:=6.8.7
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=491a8b0c00680ba110fb42d17a51627365b1baed PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_SOURCE_VERSION:=28ed108048c4d63bd0dc16dbf37ad52ea60c57b6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=LGPL-2.1 PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/libbbf_api define Package/libbbf_api
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=Library for libbbfdm API TITLE:=Library for libbbfdm API
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libopenssl +libwolfssl
endef endef
define Package/libbbfdm define Package/libbbfdm/default
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=Library for broadband-forum data model TITLE:=Library for broadband forum data model support
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libbbf_api +libcurl +libopenssl +libwolfssl DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libcurl
MENU:=1 endef
define Package/libbbfdm
$(Package/libbbfdm/default)
TITLE += (internal)
VARIANT:=internal
endef
define Package/libbbfdm-mbedtls
$(Package/libbbfdm/default)
TITLE += (mbedtls)
DEPENDS += +PACKAGE_libbbfdm-mbedtls:libmbedtls
VARIANT:=mbedtls
DEFAULT_VARIANT:=1
endef
define Package/libbbfdm-openssl
$(Package/libbbfdm/default)
TITLE += (openssl)
DEPENDS += +PACKAGE_libbbfdm-openssl:libopenssl
CONFLICTS := libbbfdm-mbedtls
VARIANT:=openssl
endef
define Package/libbbfdm-wolfssl
$(Package/libbbfdm/default)
TITLE += (wolfssl)
DEPENDS += +PACKAGE_libbbfdm-wolfssl:libwolfssl
CONFLICTS := libbbfdm-mbedtls libbbfdm-openssl
VARIANT:=wolfssl
endef endef
define Package/libbbfdm/config define Package/libbbfdm/config
@@ -58,79 +85,81 @@ define Build/Prepare
endef endef
endif endif
TARGET_CFLAGS += \ CMAKE_OPTIONS += \
-D_GNU_SOURCE \ -DBBF_TR181=ON
-Wall -Werror \
ifeq ($(CONFIG_BBF_TR181),y)
CONFIGURE_ARGS += \
--enable-tr181
endif
ifeq ($(CONFIG_BBF_TR104),y) ifeq ($(CONFIG_BBF_TR104),y)
CONFIGURE_ARGS += \ CMAKE_OPTIONS += \
--enable-tr104 -DBBF_TR104=ON
endif endif
ifeq ($(CONFIG_BBF_TR143),y) ifeq ($(CONFIG_BBF_TR143),y)
CONFIGURE_ARGS += \ CMAKE_OPTIONS += \
--enable-tr143 -DBBF_TR143=ON
endif endif
ifeq ($(CONFIG_BBF_VENDOR_EXTENSION),y) ifeq ($(CONFIG_BBF_VENDOR_EXTENSION),y)
CONFIGURE_ARGS += \ CMAKE_OPTIONS += \
--enable-vendor-extension -DBBF_VENDOR_EXTENSION=ON
CONFIGURE_ARGS += \ CMAKE_OPTIONS += \
BBF_VENDOR_LIST="$(CONFIG_BBF_VENDOR_LIST)" \ -DBBF_VENDOR_LIST:String="$(CONFIG_BBF_VENDOR_LIST)" \
BBF_VENDOR_PREFIX="$(CONFIG_BBF_VENDOR_PREFIX)" -DBBF_VENDOR_PREFIX:String="$(CONFIG_BBF_VENDOR_PREFIX)" \
-DBBF_MAX_OBJECT_INSTANCES:Integer=$(CONFIG_BBF_MAX_OBJECT_INSTANCES)
endif ##CONFIG_BBF_VENDOR_EXTENSION endif ##CONFIG_BBF_VENDOR_EXTENSION
ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y) ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y)
CONFIGURE_ARGS += \ CMAKE_OPTIONS += \
--enable-json-plugin -DBBF_JSON_PLUGIN=ON
endif endif
ifeq ($(CONFIG_BBFDM_ENABLE_DOTSO_PLUGIN),y) ifeq ($(CONFIG_BBFDM_ENABLE_DOTSO_PLUGIN),y)
CONFIGURE_ARGS += \ CMAKE_OPTIONS += \
--enable-shared-library -DBBF_DOTSO_PLUGIN=ON
endif endif
ifeq ($(CONFIG_BBF_USE_WOLFSSL), y) ifeq ($(BUILD_VARIANT),openssl)
CONFIGURE_ARGS += --enable-libwolfssl CMAKE_OPTIONS += -DWITH_OPENSSL=ON
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
TARGET_LDFLAGS += "-lwolfssl"
endif endif
ifeq ($(CONFIG_BBF_USE_OPENSSL), y) ifeq ($(BUILD_VARIANT),wolfssl)
CONFIGURE_ARGS += --enable-libopenssl CMAKE_OPTIONS += -DWITH_WOLFSSL=ON
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/ endif
TARGET_LDFLAGS += "-lssl"
ifeq ($(BUILD_VARIANT),mbedtls)
CMAKE_OPTIONS += -DWITH_MBEDTLS=ON
endif endif
define Package/libbbf_api/install define Package/libbbf_api/install
$(INSTALL_DIR) $(1)/lib $(INSTALL_DIR) $(1)/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbf_api.so* $(1)/lib/
endef endef
define Package/libbbfdm/install define Package/libbbfdm/default/install
$(INSTALL_DIR) $(1)/lib $(INSTALL_DIR) $(1)/lib
$(INSTALL_DIR) $(1)/usr/share/bbfdm $(INSTALL_DIR) $(1)/usr/share/bbfdm
$(INSTALL_DIR) $(1)/etc/bbfdm $(INSTALL_DIR) $(1)/etc/bbfdm
$(INSTALL_DIR) $(1)/etc/bbfdm/dmmap $(INSTALL_DIR) $(1)/etc/bbfdm/dmmap
$(INSTALL_DIR) $(1)/etc/bbfdm/json $(INSTALL_DIR) $(1)/etc/bbfdm/json
$(INSTALL_DIR) $(1)/usr/lib/bbfdm $(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.so* $(1)/lib/ $(CP) $(PKG_BUILD_DIR)/libbbfdm.so $(1)/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/* $(1)/usr/share/bbfdm $(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/* $(1)/usr/share/bbfdm
endef endef
define Package/libbbfdm/prerm define Package/libbbfdm/default/prerm
#!/bin/sh #!/bin/sh
rm -rf /etc/bbfdm/dmmap/* rm -rf /etc/bbfdm/dmmap/*
exit 0 exit 0
endef endef
Package/libbbfdm-openssl/prerm = $(Package/libbbfdm/default/prerm)
Package/libbbfdm-wolfssl/prerm = $(Package/libbbfdm/default/prerm)
Package/libbbfdm-mbedtls/prerm = $(Package/libbbfdm/default/prerm)
Package/libbbfdm-openssl/install = $(Package/libbbfdm/default/install)
Package/libbbfdm-wolfssl/install = $(Package/libbbfdm/default/install)
Package/libbbfdm-mbedtls/install = $(Package/libbbfdm/default/install)
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include $(INSTALL_DIR) $(1)/usr/include
@@ -139,9 +168,12 @@ define Build/InstallDev
$(INSTALL_DATA) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/libbbfdm/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/libbbfdm/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbf_api/*.h $(1)/usr/include/libbbf_api/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbf_api/*.h $(1)/usr/include/libbbf_api/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.{a,so*} $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/libbbfdm.so $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbf_api.{a,so*} $(1)/usr/lib/ touch $(1)/usr/lib/libbbf_api.so
endef endef
$(eval $(call BuildPackage,libbbf_api)) $(eval $(call BuildPackage,libbbf_api))
$(eval $(call BuildPackage,libbbfdm)) $(eval $(call BuildPackage,libbbfdm))
$(eval $(call BuildPackage,libbbfdm-openssl))
$(eval $(call BuildPackage,libbbfdm-wolfssl))
$(eval $(call BuildPackage,libbbfdm-mbedtls))

View File

@@ -1,5 +1,5 @@
# #
# Copyright (C) 2020 iopsys Software Solutions AB # Copyright (C) 2022 iopsys Software Solutions AB
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@@ -8,22 +8,25 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=bulkdata PKG_NAME:=bulkdata
PKG_VERSION:=1.0.4 PKG_VERSION:=2.0.3
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git
PKG_SOURCE_VERSION:=b35e7862bc17fc11dc1f757c7b93900995a28633 PKG_SOURCE_VERSION:=85d7486a21a9eb0e0f345b587b3ac506edcb72fe
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME) define Package/$(PKG_NAME)
@@ -31,11 +34,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=BBF BulkData Collection TITLE:=BBF BulkData Collection
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +curl +libblobmsg-json +libbbfdm +libbbf_api DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json
endef
define Package/$(PKG_NAME)/description
BBF BulkData Collection
endef endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \
@@ -52,7 +51,7 @@ define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bulkdatad $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/bulkdatad $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib/bbfdm $(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib/bbfdm $(INSTALL_BIN) $(PKG_BUILD_DIR)/bbf_plugin/*.so $(1)/usr/lib/bbfdm
$(CP) ./files/* $(1)/ $(CP) ./files/* $(1)/
endef endef

View File

@@ -1,43 +1,6 @@
config bulkdata 'bulkdata' config bulkdata 'bulkdata'
option enable '0' option enable '0'
#Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4 #Log levels: Error=1, Warning=2, Info=3, Debug=4
option log_level '3' option log_level '3'
config profile
option profile_id '1'
option enable '0'
option name ''
option nbre_of_retained_failed_reports '0'
option protocol 'http'
option encoding_type ''
option reporting_interval '86400'
option time_reference '0'
option csv_encoding_field_separator ','
option csv_encoding_row_separator '&#10;'
option csv_encoding_escape_character '&quot;'
option csv_encoding_report_format 'column'
option csv_encoding_row_time_stamp 'unix'
option json_encoding_report_format 'objecthierarchy'
option json_encoding_report_time_stamp 'unix'
option http_url ''
option http_username ''
option http_password ''
option http_compression 'none'
option http_method 'post'
option http_use_date_header '1'
option http_retry_enable '0'
option http_retry_minimum_wait_interval '5'
option http_retry_interval_multiplier '2000'
option http_persist_across_reboot '0'
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 ''

View File

@@ -1,7 +1,4 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Bulkdata Software
# Copyright (C) 2020 iopsys Software Solutions AB
# Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
START=99 START=99
STOP=10 STOP=10
@@ -10,13 +7,16 @@ USE_PROCD=1
PROG="/usr/sbin/bulkdatad" PROG="/usr/sbin/bulkdatad"
start_service() { start_service() {
local bulkdata_enable=`uci -q get bulkdata.bulkdata.enable` local enable=$(uci -q get bulkdata.bulkdata.enable)
if [ "$bulkdata_enable" = "1" ]; then
procd_open_instance [ "$enable" != "1" ] && {
procd_set_param command "$PROG" return 0
procd_set_param respawn "3" "7" "0" }
procd_close_instance
fi procd_open_instance
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
procd_close_instance
} }
boot() { boot() {

View File

@@ -0,0 +1,75 @@
#!/bin/sh
. /lib/functions.sh
PROFILE_COUNT=1
get_next_count()
{
local config="$1"
local default_name="${2}"
local count=${3}
local found=0
if [ -z "$count" ]; then
count=1
fi
while [ "${found}" -ne 1 ]; do
uci -q get ${config}.${default_name}_${count} >/dev/null
if [ $? -eq 0 ]; then
count=$((count + 1))
else
found=1;
fi
done
echo "${default_name}_${count}"
}
translate_profile_id_to_profile_name() {
local section="${1}"
local profile_id="${2}"
local profile_name="${3}"
local curr_profile_id
config_get curr_profile_id "${section}" profile_id
[ -n "${curr_profile_id}" ] || return
[ "${curr_profile_id}" != "${profile_id}" ] && return
uci -q set bulkdata.${section}.profile_name="${profile_name}"
uci -q set bulkdata.${section}.profile_id=""
}
update_profile_sections() {
local section="${1}"
local default="${2}"
local profile_name
config_get profile_id "${section}" profile_id
[ -n "${profile_id}" ] || return
case "${section}" in
"cfg"*)
profile_name="$(get_next_count bulkdata ${default} ${PROFILE_COUNT})"
uci_rename bulkdata "${section}" "${profile_name}"
;;
esac
PROFILE_COUNT=$((PROFILE_COUNT + 1))
[ -n "$profile_name" ] && section="${profile_name}"
uci -q set bulkdata.${section}.profile_id=""
config_foreach translate_profile_id_to_profile_name profile_parameter "${profile_id}" "${profile_name}"
config_foreach translate_profile_id_to_profile_name profile_http_request_uri_parameter "${profile_id}" "${profile_name}"
}
config_load bulkdata
config_foreach update_profile_sections profile profile
uci commit bulkdata
exit 0

View File

@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dectmngr PKG_NAME:=dectmngr
PKG_RELEASE:=3 PKG_RELEASE:=3
PKG_VERSION:=3.5.1 PKG_VERSION:=3.5.4
LOCAL_DEV=0 LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=cc475d5bfe663b73f4ae28d74c9035e210a8ad24 PKG_SOURCE_VERSION:=54ebb54162fae9fdd6e327e430cf57aa217c176d
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif

View File

@@ -11,6 +11,8 @@ PROG=/usr/sbin/dectmngr
LOG_PATH=/var/log/dectmngr LOG_PATH=/var/log/dectmngr
DB_PATH=/etc/dect DB_PATH=/etc/dect
DECT_GPIO=$(db -q get hw.board.dect_gpio)
# Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process. # Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process.
stop_and_wait_dectmngr() { stop_and_wait_dectmngr() {
pidof $NAME && killall -q $NAME pidof $NAME && killall -q $NAME
@@ -30,7 +32,7 @@ start_service() {
test $(db get hw.board.hasDect) = "0" && return test $(db get hw.board.hasDect) = "0" && return
echo 1 > /sys/class/gpio/gpio14/value [ -n "$DECT_GPIO" ] && echo 1 > /sys/class/gpio/gpio${DECT_GPIO}/value
rfpi=$(db -q get hw.board.dect_rfpi) rfpi=$(db -q get hw.board.dect_rfpi)
[ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_ext="$opt_ext -rfpi $rfpi" [ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_ext="$opt_ext -rfpi $rfpi"
@@ -71,7 +73,7 @@ start_service() {
stop_service() { stop_service() {
test $(db get hw.board.hasDect) = "0" && return test $(db get hw.board.hasDect) = "0" && return
echo 0 > /sys/class/gpio/gpio14/value [ -n "$DECT_GPIO" ] && echo 0 > /sys/class/gpio/gpio${DECT_GPIO}/value
stop_and_wait_dectmngr stop_and_wait_dectmngr
} }
@@ -86,8 +88,10 @@ service_triggers()
} }
boot() { boot() {
echo 14 > /sys/class/gpio/export [ -n "$DECT_GPIO" ] && {
echo out > /sys/class/gpio/gpio14/direction echo ${DECT_GPIO} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${DECT_GPIO}/direction
}
[ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH [ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH
[ ! -d $DB_PATH ] && mkdir -p $DB_PATH [ ! -d $DB_PATH ] && mkdir -p $DB_PATH

View File

@@ -7,18 +7,18 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=endptmngr PKG_NAME:=endptmngr
PKG_VERSION:=0.6 PKG_VERSION:=0.7
LOCAL_DEV=0 LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
PKG_SOURCE_VERSION:=2390a3503990e04e33e8e448ad9dccc00f206908 PKG_SOURCE_VERSION:=c099d6b0438f945d91bf3c9718da730a8a52ff27
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_LICENSE:=MIT PKG_LICENSE:=PROPRIETARY
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
export BUILD_DIR export BUILD_DIR

View File

@@ -5,18 +5,18 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=evoice PKG_NAME:=evoice
PKG_VERSION:=0.1 PKG_VERSION:=0.2.1
LOCAL_DEV=0 LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/evoice.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/evoice.git
PKG_SOURCE_VERSION:=56a568164e84c8e2d7f2c7f06d26265e837b11ef PKG_SOURCE_VERSION:=f2477946f9e142d01820b38e32ce98a781e0310e
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_LICENSE:=MIT PKG_LICENSE:=PROPRIETARY
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
@@ -31,7 +31,7 @@ define Package/$(PKG_NAME)
SUBMENU:=Telephony SUBMENU:=Telephony
TITLE:=Ensemble Voice TITLE:=Ensemble Voice
URL:= URL:=
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp +TARGET_iopsys_brcm63xx_arm:bcmkernel +TARGET_iopsys_econet:kmod-voip_driver
endef endef
define Package/$(PKG_NAME)/description define Package/$(PKG_NAME)/description
@@ -45,18 +45,31 @@ define Build/Prepare
rsync -av /swdev/bide/evoice_clean/* $(PKG_BUILD_DIR)/ rsync -av /swdev/bide/evoice_clean/* $(PKG_BUILD_DIR)/
endef endef
endif endif
export IDIR = $(STAGING_DIR)/usr/include
export BDIR = bcm963xx/userspace/private/apps/voice ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
export _XFLAGS = -I$(IDIR) -I$(IDIR)/$(BDIR)/inc -I$(IDIR)/bcm963xx/xchg/bos/publicInc -I$(IDIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx TARGET_PLATFORM=BROADCOM
export IDIR = $(STAGING_DIR)/usr/include
export BDIR = bcm963xx/userspace/private/apps/voice
export _XFLAGS = -I$(IDIR) -I$(IDIR)/$(BDIR)/inc -I$(IDIR)/bcm963xx/xchg/bos/publicInc -I$(IDIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
else ifeq ($(CONFIG_TARGET_iopsys_econet),y)
TARGET_PLATFORM=ECONET
endif
export TARGET_PLATFORM
define Build/Compile define Build/Compile
@echo "TARGET_PLATFORM=${TARGET_PLATFORM}"
+$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=SVrgBcmFxs LIF=cerder DBG=dbg +$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=SVrgBcmFxs LIF=cerder DBG=dbg
+$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=libvoiceservice LIF=cerder DBG=dbg
endef endef
define Package/evoice/install define Package/evoice/install
$(CP) ./files/* $(1)/ $(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/evoice $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/evoice $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/libvoiceservice.so $(1)/usr/lib/bbfdm/
endef endef
$(eval $(call BuildPackage,evoice)) $(eval $(call BuildPackage,evoice))

View File

@@ -98,20 +98,20 @@ config RTP '1RTP'
option JitterBufferType 'Static' option JitterBufferType 'Static'
config FXXPorts 'POTS' config FXXPorts 'POTS'
option Region 'SE' option Region 'US'
config FXSPorts 'FXS1' config FXSPorts 'FXS1'
option Enable '1' option Enable '1'
option DialType 'Tone' option DialType 'Tone'
option TransmitGain '4' option TransmitGain '0'
option ReceiveGain '4' option ReceiveGain '0'
option EchoCancellationEnable '1' option EchoCancellationEnable '1'
config FXSPorts 'FXS2' config FXSPorts 'FXS2'
option Enable '1' option Enable '1'
option DialType 'Tone' option DialType 'Tone'
option TransmitGain '4' option TransmitGain '0'
option ReceiveGain '4' option ReceiveGain '0'
option EchoCancellationEnable '1' option EchoCancellationEnable '1'
config Extension 'Extension1' config Extension 'Extension1'

View File

@@ -0,0 +1,38 @@
# Capabilties are platform dependent. Keep these separated from customer configuration
config capabilities_prm 'limits'
option MaxCallLogCount '100'
config capabilities_prm 'features'
option QIModelsSupported 'G.107'
config CapabilitiesCodec 'Codec1'
option Codec 'G.711ALaw'
option BitRate '64000'
option PacketizationPeriod '20,30'
option SilenceSupression '1'
config CapabilitiesCodec 'Codec2'
option Codec 'G.711MuLaw'
option BitRate '64000'
option PacketizationPeriod '20,30'
option SilenceSupression '1'
config CapabilitiesCodec 'Codec3'
option Codec 'G.726'
option BitRate '32000'
option PacketizationPeriod '20,30'
option SilenceSupression '0'
config CapabilitiesCodec 'Codec4'
option Codec 'G.722'
option BitRate '64000'
option PacketizationPeriod '20,30'
option SilenceSupression '0'
config CapabilitiesCodec 'Codec4'
option Codec 'G.729'
option BitRate '8000'
option PacketizationPeriod '20,30'
option SilenceSupression '0'

View File

@@ -94,6 +94,7 @@ config cs_account 'map_set'
option Enable_Call_Transfer 'voice.Set@.CallTransferEnable' option Enable_Call_Transfer 'voice.Set@.CallTransferEnable'
option AnonymousReject 'voice.Set@.AnonymousCallRejectionEnable' option AnonymousReject 'voice.Set@.AnonymousCallRejectionEnable'
option AllowAnonymousConf 'voice.Set@.AnonymousCallEnable' option AllowAnonymousConf 'voice.Set@.AnonymousCallEnable'
option CallerIDEnable 'voice.Set@.CallerIDEnable'
config cs_xvendor 'map_np_cs' config cs_xvendor 'map_np_cs'
option np_sc_actCW 'voice.X_IOPSYS_EU_NpSc@.CW_ACT' option np_sc_actCW 'voice.X_IOPSYS_EU_NpSc@.CW_ACT'

View File

@@ -2,9 +2,9 @@ config static_prm 'defaults'
option Print_Control '4' option Print_Control '4'
option Print_UDP_Addr '192.168.1.3' option Print_UDP_Addr '192.168.1.3'
option Print_UDP_Port '60000' option Print_UDP_Port '60000'
option Verbosity 'Off' option Verbosity 'On'
option Failure_Log 'On' option Failure_Log 'On'
option Message_Log 'Off' option Message_Log 'On'
option Method_Trace 'Off' option Method_Trace 'Off'
option Dial_Cache_Size '0' option Dial_Cache_Size '0'
option Reverse_Fax_Detection '0' option Reverse_Fax_Detection '0'
@@ -42,6 +42,7 @@ config static_prm 'defaults'
option NAT_Address_From_SIP '0' option NAT_Address_From_SIP '0'
option HookOn_Transfer '0' option HookOn_Transfer '0'
option Enable_Call_Transfer '1' option Enable_Call_Transfer '1'
option CallerIDEnable '1'
option Multiparty_Transp '0' option Multiparty_Transp '0'
option Presence_Indication '0' option Presence_Indication '0'
option Login_Note ' ' option Login_Note ' '

View File

@@ -1,36 +1,14 @@
if PACKAGE_icwmp
choice choice
prompt "Select ACS sever" prompt "Select ACS sever"
default CWMP_ACS_MULTI default CWMP_ACS_MULTI
depends on PACKAGE_icwmp || \
PACKAGE_icwmp-openssl || \
PACKAGE_icwmp-wolfssl || \
PACKAGE_icwmp-mbedtls
config CWMP_ACS_MULTI config CWMP_ACS_MULTI
bool "No specific ACS, follow standard" bool "No specific ACS, follow standard"
config CWMP_ACS_HDM config CWMP_ACS_HDM
bool "HDM" bool "Select HDM as ACS server"
endchoice endchoice
config CWMP_DEBUG
bool "Compile with debug options"
default y
config CWMP_DEVEL_DEBUG
bool "Compile with development debug options"
default n
choice
prompt "Select SSL utility"
default CWMP_USE_WOLFSSL
config CWMP_USE_WOLFSSL
bool "Use WolfSSL for ssl utilities"
select CONFIG_PACKAGE_libwolfssl
config CWMP_USE_OPENSSL
bool "Use OpenSSL for ssl utilities"
select CONFIG_PACKAGE_libopenssl
endchoice
endif

View File

@@ -1,5 +1,5 @@
# #
# Copyright (C) 2020 iopsys Software Solutions AB # Copyright (C) 2020-2022 IOPSYS Software Solutions AB
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@@ -8,57 +8,86 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp PKG_NAME:=icwmp
PKG_VERSION:=8.4.0 PKG_VERSION:=8.4.25
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=473e8f449032cb195ae4aff2595e5c2efe623335 PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_SOURCE_VERSION:=cbfff1b644efceca0b5c72d062535bc766ca1e54
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=GPLv2 PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=COPYING PKG_LICENSE_FILES:=LICENSE
PKG_FIXUP:=autoreconf
PKG_CONFIG_DEPENDS:= \ PKG_CONFIG_DEPENDS:= \
CONFIG_CWMP_ACS_MULTI \ CONFIG_CWMP_ACS_MULTI \
CONFIG_CWMP_ACS_HDM \ CONFIG_CWMP_ACS_HDM \
CONFIG_CWMP_DEBUG \ CONFIG_CWMP_DEBUG \
CONFIG_CWMP_DEVEL_DEBUG CONFIG_CWMP_DEVEL_DEBUG
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME) define Package/icwmp/default
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=CWMP client TITLE:=TR069 CWMP client
DEPENDS:=+libuci +libubox +jshn +libubus +libblobmsg-json +libpthread +ubusd +shflags +getopt +zlib +libjson-c +libwolfssl +curl +libcurl +libopenssl +mxml DEPENDS:=+libuci +libubox +libblobmsg-json +libubus +libjson-c +libcurl +mxml
MENU := 1
endef endef
define Package/$(PKG_NAME)/description define Package/icwmp/config
A free client implementation of CWMP (TR-069) protocol
endef
define Package/$(PKG_NAME)/config
source "$(SOURCE)/Config_cwmp.in" source "$(SOURCE)/Config_cwmp.in"
endef endef
USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1)
ifneq ($(USE_LOCAL),)
define Build/Prepare
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
endif
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
"-DCWMP_REVISION=\\\"$(PKG_SOURCE_VERSION)\\\"" "-DCWMP_REVISION=\\\"$(PKG_SOURCE_VERSION)\\\""
define Package/icwmp
$(Package/icwmp/default)
TITLE += (internal)
VARIANT:=internal
endef
define Package/icwmp-openssl
$(Package/icwmp/default)
TITLE += (openssl)
DEPENDS += +PACKAGE_icwmp-openssl:libopenssl
VARIANT:=openssl
endef
define Package/icwmp-wolfssl
$(Package/icwmp/default)
TITLE += (wolfssl)
DEPENDS += +PACKAGE_icwmp-wolfssl:libwolfssl
CONFLICTS := icwmp-openssl
VARIANT:=wolfssl
endef
define Package/icwmp-mbedtls
$(Package/icwmp/default)
TITLE += (mbedtls)
DEPENDS += +PACKAGE_icwmp-mbedtls:libmbedtls
CONFLICTS := icwmp-openssl icwmp-wolfssl
VARIANT:=mbedtls
DEFAULT_VARIANT:=1
endef
ifeq ($(BUILD_VARIANT),openssl)
CONFIGURE_ARGS += --enable-libopenssl
endif
ifeq ($(BUILD_VARIANT),wolfssl)
CONFIGURE_ARGS += --enable-libwolfssl
endif
ifeq ($(BUILD_VARIANT),mbedtls)
CONFIGURE_ARGS += --enable-libmbedtls
endif
ifeq ($(CONFIG_CWMP_ACS_MULTI),y) ifeq ($(CONFIG_CWMP_ACS_MULTI),y)
CONFIGURE_ARGS += \ CONFIGURE_ARGS += \
--enable-acs=multi --enable-acs=multi
@@ -69,44 +98,37 @@ CONFIGURE_ARGS += \
--enable-acs=hdm --enable-acs=hdm
endif endif
ifeq ($(CONFIG_CWMP_DEBUG),y) USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1)
CONFIGURE_ARGS += \ ifneq ($(USE_LOCAL),)
--enable-debug define Build/Prepare
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
endif endif
ifeq ($(CONFIG_CWMP_DEVEL_DEBUG),y) define Package/icwmp/default/install
CONFIGURE_ARGS += \
--enable-devel
endif
ifeq ($(CONFIG_CWMP_USE_WOLFSSL), y)
CONFIGURE_ARGS += --enable-libwolfssl
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
TARGET_LDFLAGS += "-lwolfssl"
endif
ifeq ($(CONFIG_CWMP_USE_OPENSSL), y)
CONFIGURE_ARGS += --enable-libopenssl
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
TARGET_LDFLAGS += "-lssl"
endif
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/etc/icwmpd $(INSTALL_DIR) $(1)/etc/icwmpd
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/uci-defaults $(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d $(INSTALL_DIR) $(1)/lib/upgrade/keep.d
$(INSTALL_DIR) $(1)/etc/bbfdm/json/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/icwmpd $(1)/usr/sbin/icwmpd $(INSTALL_BIN) $(PKG_BUILD_DIR)/icwmpd $(1)/usr/sbin/icwmpd
$(INSTALL_DATA) ./files/etc/config/cwmp $(1)/etc/config/cwmp $(INSTALL_DATA) ./files/etc/config/cwmp $(1)/etc/config/cwmp
$(INSTALL_BIN) ./files/etc/firewall.cwmp $(1)/etc/firewall.cwmp $(INSTALL_BIN) ./files/etc/firewall.cwmp $(1)/etc/firewall.cwmp
$(INSTALL_BIN) ./files/etc/init.d/icwmpd $(1)/etc/init.d/icwmpd $(INSTALL_BIN) ./files/etc/init.d/icwmpd $(1)/etc/init.d/icwmpd
$(INSTALL_BIN) ./files/etc/uci-defaults/85-cwmp-set-userid $(1)/etc/uci-defaults/ $(INSTALL_BIN) ./files/etc/uci-defaults/85-cwmp-set-userid $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/90-cwmpfirewall $(1)/etc/uci-defaults/ $(INSTALL_BIN) ./files/etc/uci-defaults/90-cwmpfirewall $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/95-icwmp-generate-ssl $(1)/etc/uci-defaults/
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/icwmp $(1)/lib/upgrade/keep.d/icwmp $(INSTALL_DATA) ./files/lib/upgrade/keep.d/icwmp $(1)/lib/upgrade/keep.d/icwmp
$(INSTALL_BIN) ./files/etc/icwmpd/update.sh $(1)/etc/icwmpd/update.sh $(INSTALL_BIN) ./files/etc/icwmpd/update.sh $(1)/etc/icwmpd/update.sh
$(INSTALL_DATA) ./files/etc/bbfdm/json/CWMPManagementServer.json $(1)/etc/bbfdm/json/
endef endef
$(eval $(call BuildPackage,$(PKG_NAME))) Package/icwmp-openssl/install = $(Package/icwmp/default/install)
Package/icwmp-wolfssl/install = $(Package/icwmp/default/install)
Package/icwmp-mbedtls/install = $(Package/icwmp/default/install)
$(eval $(call BuildPackage,icwmp))
$(eval $(call BuildPackage,icwmp-openssl))
$(eval $(call BuildPackage,icwmp-wolfssl))
$(eval $(call BuildPackage,icwmp-mbedtls))

View File

@@ -0,0 +1,36 @@
{
"json_plugin_version": 1,
"Device.CWMPManagementServer.": {
"type": "object",
"version": "2.15",
"protocols": [
"usp"
],
"access": false,
"array": false,
"dependency": "file:/etc/config/cwmp",
"EnableCWMP": {
"type": "boolean",
"version": "2.15",
"read": true,
"write": true,
"protocols": [
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "cwmp",
"section": {
"name": "cpe"
},
"option": {
"name": "enable"
}
}
}
]
}
}
}

View File

@@ -11,11 +11,11 @@ config acs 'acs'
option retry_min_wait_interval '5' option retry_min_wait_interval '5'
#­ possible configs interval :[1000:65535] #­ possible configs interval :[1000:65535]
option retry_interval_multiplier '2000' option retry_interval_multiplier '2000'
option https_ssl_capath ''
option ipv6_enable '0' option ipv6_enable '0'
option ip_version '4' option ip_version '4'
config cpe 'cpe' config cpe 'cpe'
option enable '1'
option default_wan_interface 'wan' option default_wan_interface 'wan'
option log_to_console 'disable' option log_to_console 'disable'
option log_to_file 'disable' option log_to_file 'disable'

View File

@@ -1,93 +1,29 @@
#!/bin/sh #!/bin/sh
. /lib/functions.sh
log() { log() {
echo "$@" |logger -t cwmp.update -p info echo "$@" |logger -t cwmp.update -p info
} }
handle_icwmp_update() { handle_icwmp_update() {
local defwan vendorspecinf update local cwmp_enable
config_load cwmp
update="0" config_get_bool cwmp_enable cpe enable 1
defwan="$(uci -q get cwmp.cpe.default_wan_interface)" if [ "$cwmp_enable" = "0" ]; then
vendorspecinf="$(ifstatus "${defwan}" | jsonfilter -e "@.data.vendorspecinf")" return 0
fi
log "Handling dhcp option value [${vendorspecinf}]" status="$(ubus call tr069 status |jsonfilter -qe '@.last_session.status')"
[ -n "$vendorspecinf" ] && { if [ "$status" != "running" ]; then
local url old_url log "Trigger out of bound inform, since last inform status was failure"
local prov_code old_prov_code ubus -t 10 call tr069 inform >/dev/null 2>&1
local min_wait_interval old_min_wait_interval # Handle timeout or tr069 object not found
local retry_interval_multiplier old_retry_interval_multiplier if [ "$?" -eq 7 ] || [ "$?" -eq 4 ]; then
log "Restarting icwmp tr069 object"
old_url="$(uci -q get cwmp.acs.dhcp_url)"
old_prov_code="$(uci -q get cwmp.cpe.dhcp_provisioning_code)"
old_min_wait_interval="$(uci -q get cwmp.acs.dhcp_retry_min_wait_interval)"
old_retry_interval_multiplier="$(uci -q get cwmp.acs.dhcp_retry_interval_multiplier)"
case $vendorspecinf in
http://*|https://*)
url="${vendorspecinf}"
;;
*)
for optval in $vendorspecinf; do
case $optval in
1=*)
url="$(echo "$optval" | cut -d"=" -f2-)"
;;
2=*)
prov_code="$(echo "$optval" | cut -d"=" -f2-)"
;;
3=*)
min_wait_interval="$(echo "$optval" | cut -d"=" -f2-)"
;;
4=*)
retry_interval_multiplier="$(echo "$optval" | cut -d"=" -f2-)"
;;
esac
done
;;
esac
if [ -n "$url" ]; then
if [ "${url}" != "${old_url}" ]; then
log "## icwmp url[${old_url}] changed to [${url}]"
uci -q set cwmp.acs.dhcp_url="$url"
update=1
fi
fi
if [ -n "$prov_code" ]; then
if [ "${prov_code}" != "${old_prov_code}" ]; then
log "## icwmp prov_code[${old_prov_code}] changed to [${prov_code}]"
uci -q set cwmp.cpe.dhcp_provisioning_code="$prov_code"
update=1
fi
fi
if [ -n "$min_wait_interval" ]; then
if [ "${min_wait_interval}" != "${old_min_wait_interval}" ]; then
log "## icwmp min_wait_interval[${old_min_wait_interval}] changed to [${min_wait_interval}]"
uci -q set cwmp.acs.dhcp_retry_min_wait_interval="$min_wait_interval"
update=1
fi
fi
if [ -n "$retry_interval_multiplier" ]; then
if [ "${retry_interval_multiplier}" != "${old_retry_interval_multiplier}" ]; then
log "## icwmp retry_interval_multiplier[${old_retry_interval_multiplier}] changed to [${retry_interval_multiplier}]"
uci -q set cwmp.acs.dhcp_retry_interval_multiplier="$retry_interval_multiplier"
update=1
fi
fi
}
if [ "${update}" -eq "1" ]; then
log "CWMP uci changes, reload cwmp with uci commit"
ubus call uci commit '{"config":"cwmp"}'
else
if ubus list tr069 >/dev/null 2>&1 ; then
log "Trigger out of bound inform"
ubus call tr069 inform
else
log "Restarting icwmp tr069 object not found"
/etc/init.d/icwmpd restart /etc/init.d/icwmpd restart
fi fi
fi fi
} }
handle_icwmp_update handle_icwmp_update $@

View File

@@ -15,6 +15,34 @@ log() {
echo "${@}"|logger -t cwmp.init -p info echo "${@}"|logger -t cwmp.init -p info
} }
regenerate_ssl_link()
{
local cert_dir all_file rehash
cert_dir="${1}"
[ ! -d "${cert_dir}" ] && return 0;
### Generate all ssl link for pem certicates ###
all_file=$(ls $cert_dir/*.pem 2>/dev/null)
if [ -n "${all_file}" ]; then
for cfile in $all_file; do
rehash="$(openssl x509 -hash -noout -in $cfile)"
[ -f ${cert_dir}/${rehash}.0 ] || \
ln -s $cfile $cert_dir/${rehash}.0
done
fi
### Generate all ssl link for crt certicates ###
all_file=$(ls $cert_dir/*.crt 2>/dev/null)
if [ -n "${all_file}" ]; then
for cfile in $all_file; do
rehash="$(openssl x509 -hash -noout -in $cfile)"
[ -f ${cert_dir}/${rehash}.0 ] || \
ln -s $cfile $cert_dir/${rehash}.0
done
fi
}
enable_dhcp_option43() { enable_dhcp_option43() {
local wan="${1}" local wan="${1}"
@@ -102,12 +130,13 @@ validate_acs_section()
'periodic_inform_interval:uinteger' \ 'periodic_inform_interval:uinteger' \
'periodic_inform_time:string' \ 'periodic_inform_time:string' \
'url:string' \ 'url:string' \
'dhcp_discovery:string' \
'dhcp_url:string' \ 'dhcp_url:string' \
'compression:or("GZIP","Deflate","Disabled")' \ 'compression:or("GZIP","Deflate","Disabled")' \
'retry_min_wait_interval:range(1, 65535)' \ 'retry_min_wait_interval:range(1, 65535)' \
'retry_interval_multiplier:range(1000, 65535)' \ 'retry_interval_multiplier:range(1000, 65535)' \
'https_ssl_capath:file' \ 'ipv6_enable:bool' \
'ipv6_enable:bool' 'ssl_capath:string'
} }
@@ -136,6 +165,7 @@ validate_cpe_section()
} }
validate_defaults() { validate_defaults() {
local ssl_capath
config_load cwmp config_load cwmp
validate_acs_section || { validate_acs_section || {
@@ -143,10 +173,12 @@ validate_defaults() {
return 1; return 1;
} }
[ -z "${url}" ] && [ -z "${dhcp_url}" ] && { # Put the cert pem file in keep list
log "ACS url is empty can't start" if [ -d "${ssl_capath}" ]; then
return 1; if ! grep "${ssl_capath}" /lib/upgrade/keep.d/icwmp; then
} echo "${ssl_capath}"'/*.pem' >> /lib/upgrade/keep.d/icwmp
fi
fi
validate_cpe_section || { validate_cpe_section || {
log "Validation of cpe section failed" log "Validation of cpe section failed"
@@ -156,26 +188,37 @@ validate_defaults() {
return 0; return 0;
} }
boot() {
local dhcp_discovery="0"
config_load cwmp
config_get dhcp_discovery acs dhcp_discovery "0"
if [ "${dhcp_discovery}" == "enable" ] || [ "${dhcp_discovery}" == "1" ]; then
# Set dhcp option 43 if not already configured
config_get wan_interface cpe default_wan_interface "wan"
enable_dhcp_option43 "${wan_interface}"
fi
config_get ssl_capath acs ssl_capath
if [ -n "${ssl_capath}" ]; then
regenerate_ssl_link "${ssl_capath}"
fi
start
}
start_service() { start_service() {
local enable_cwmp local enable_cwmp
local wan_interface
local dhcp_discovery
config_load cwmp config_load cwmp
config_get_bool enable_cwmp cpe enable 1 config_get_bool enable_cwmp cpe enable 1
config_get dhcp_discovery acs dhcp_discovery
config_get wan_interface cpe default_wan_interface "wan"
if [ "$enable_cwmp" = "0" ] || [ "$enable_cwmp" = "false" ]; then if [ "$enable_cwmp" = "0" ]; then
log "CWMP is not enabled"
return 0 return 0
fi fi
# Set dhcp option 43 if dhcp discovery enabled
if [ "${dhcp_discovery}" == "enable" ] || [ "${dhcp_discovery}" == "1" ]; then
enable_dhcp_option43 "${wan_interface}"
fi
[ -f /sbin/netifd ] && log "Waiting for Network to be started ..." && ubus -t 5 wait_for network.interface [ -f /sbin/netifd ] && log "Waiting for Network to be started ..." && ubus -t 5 wait_for network.interface
[ -f /usr/sbin/dnsmasq ] && log "Waiting for DNS Proxy to be started ..." && ubus -t 5 wait_for dnsmasq [ -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 /etc/config/dhcp ] && log "Waiting for DNS Server(s) ..." && wait_for_resolvfile 20
@@ -205,9 +248,20 @@ service_stopped()
} }
reload_service() { reload_service() {
log "Reloading CWMP client" config_load cwmp
ubus -t 1 call tr069 command '{"command":"reload"}' config_get_bool enable_cwmp cpe enable 1
if [ "$?" -ne "0" ]; then
if [ "$enable_cwmp" = "0" ]; then
stop
return 0
fi
status="$(ubus -t 1 call tr069 status |jsonfilter -qe '@.cwmp.status')"
if [ "$status" = "up" ]; then
ubus -t 1 call tr069 command '{"command":"reload"}'
fi
if [ "$status" = "init" ] || [ "$?" -ne "0" ]; then
log "Restarting CWMP client" log "Restarting CWMP client"
stop stop
start start

View File

@@ -1,7 +1,11 @@
#!/bin/sh
. /lib/functions.sh
# Copy defaults by the factory to the cwmp UCI user section. # Copy defaults by the factory to the cwmp UCI user section.
config_load cwmp
# Get Manufacturer OUI. # Get Manufacturer OUI.
oui=$(uci -q get cwmp.cpe.manufacturer_oui) config_get oui cpe manufacturer_oui ""
if [ -z "${oui}" ]; then if [ -z "${oui}" ]; then
oui=$(db -q get device.deviceinfo.ManufacturerOUI) oui=$(db -q get device.deviceinfo.ManufacturerOUI)
fi fi
@@ -9,24 +13,29 @@ fi
oui=$(echo "${oui}" | tr 'a-f' 'A-F') oui=$(echo "${oui}" | tr 'a-f' 'A-F')
# Get system serial number. # Get system serial number.
serial=$(uci -q get cwmp.cpe.serial_number) config_get serial cpe serial_number ""
if [ -z "${serial}" ]; then if [ -z "${serial}" ]; then
serial=$(db -q get device.deviceinfo.SerialNumber) serial=$(db -q get device.deviceinfo.SerialNumber)
fi fi
# Get userid values # Get userid values
acs_userid=$(uci -q get cwmp.acs.userid) config_get acs_userid acs userid ""
cpe_userid=$(uci -q get cwmp.cpe.userid) config_get cpe_userid cpe userid ""
# Only set if they are empty # Only set if they are empty
if [ -z "$acs_userid" ] if [ -z "${acs_userid}" ]; then
then
uci -q set cwmp.acs.userid="${oui}-${serial}" uci -q set cwmp.acs.userid="${oui}-${serial}"
fi fi
if [ -z "$cpe_userid" ] if [ -z "${cpe_userid}" ]; then
then
uci -q set cwmp.cpe.userid="${oui}-${serial}" uci -q set cwmp.cpe.userid="${oui}-${serial}"
fi fi
# Fix the cwmp.cpe.enable parameter
# set default to 1 if not defined
config_get enable_cwmp cpe enable ""
if [ -z "${enable_cwmp}" ]; then
uci -q set cwmp.cpe.enable="1"
fi
# No need for commit here, it is done by uci_apply_defaults(). # No need for commit here, it is done by uci_apply_defaults().

View File

@@ -1,18 +0,0 @@
#!/bin/sh
. /lib/functions.sh
regenerate_ssl_link(){
[ ! -d "/etc/ssl/certs" ] && return 0;
[ ! -f "/etc/ssl/certs/*.pem" ] && return 0;
local cert_dir="/etc/ssl/certs"
local all_file=$(ls $cert_dir/*.pem)
for cfile in $all_file
do
ln -s $cfile $cert_dir/$(openssl x509 -hash -noout -in $cfile).0
done
}
regenerate_ssl_link

View File

@@ -1,16 +1,16 @@
# #
# Copyright (C) 2021 IOPSYS # Copyright (C) 2021-2022 IOPSYS
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905 PKG_NAME:=ieee1905
PKG_VERSION:=4.7.4 PKG_VERSION:=4.10.3
LOCAL_DEV=0 LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=efe39a957f8512243e6ee6044e91d8f5a97c318e PKG_SOURCE_VERSION:=3781ec6784f4186a6b7e93c83dcccbbf63ebe465
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip

View File

@@ -3,20 +3,24 @@ config ieee1905 'ieee1905'
option extension '1' option extension '1'
list extmodule 'map' list extmodule 'map'
option registrar '2 5' option registrar '2 5'
# option macaddress '0a:1b:2c:3d:4e:50'
config al-iface
option enabled '1'
option ifname 'br-lan'
option type 'bridge'
# ap sections are auto-generated/overwritten during onboarding
#
config ap config ap
option band '2' option band '2'
option ssid 'TestSSID.2' option ssid 'IOWRT-2.4GHz'
option encryption 'psk2' option encryption 'sae-mixed'
option key '5555500000' option key '1234567890'
config ap config ap
option band '5' option band '5'
option ssid 'TestSSID.5' option ssid 'IOWRT-5GHz'
option encryption 'psk2' option encryption 'sae-mixed'
option key '2222200000' option key '1234567890'
config al-iface
option enabled 1
option ifname 'br-lan'
option type 'bridge'

View File

@@ -0,0 +1,22 @@
#!/bin/sh
BMAC=$(db -q get hw.board.basemac)
BMAC=${BMAC//:/}
BMAC=${BMAC// /}
BMAC=$(printf "%12.12X" $((0x$BMAC)))
[ "$BMAC" == "" ] && exit 1
LMAC=$((0x$BMAC & 0xfeffffffffff))
LMAC=$(($LMAC | 0x020000000000))
LMAC=$(printf "%12.12X" $LMAC)
LMAC=$(echo $LMAC | sed -e 's/[0-9A-F]\{2\}/&:/g' -e 's/:$//')
mac=$(uci -q get ieee1905.ieee1905.macaddress)
[ "$mac" != "" ] && exit 0
uci set ieee1905.ieee1905.macaddress="$LMAC"
uci commit ieee1905

View File

@@ -9,10 +9,10 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=inbd PKG_NAME:=inbd
PKG_VERSION:=1.2.2 PKG_VERSION:=1.2.3
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_VERSION:=10f765f3d0fcc226b6ecf0c481598c9e7f76315e PKG_SOURCE_VERSION:=d4e910a31039e0c0b7a539311eafcd716c36be77
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/inbd PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/inbd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz

View File

@@ -51,7 +51,6 @@ CONFIG_PACKAGE_wifimngr=y
# Multi-AP # # Multi-AP #
CONFIG_PACKAGE_ieee1905=y CONFIG_PACKAGE_ieee1905=y
CONFIG_PACKAGE_map-topology=y CONFIG_PACKAGE_map-topology=y
CONFIG_PACKAGE_wfadatad=y
CONFIG_PACKAGE_wfadatad-collector=y CONFIG_PACKAGE_wfadatad-collector=y
# Network # # Network #
@@ -65,15 +64,16 @@ CONFIG_PACKAGE_questd=y
CONFIG_PACKAGE_rulengd=y CONFIG_PACKAGE_rulengd=y
# TR-x69 # # TR-x69 #
CONFIG_PACKAGE_uspd=y CONFIG_PACKAGE_uspd-mbedtls=y
CONFIG_PACKAGE_icwmp=y CONFIG_PACKAGE_icwmp-mbedtls=y
CONFIG_PACKAGE_obuspa=y CONFIG_PACKAGE_obuspa=y
CONFIG_PACKAGE_bulkdata=y CONFIG_PACKAGE_bulkdata=y
CONFIG_PACKAGE_periodicstats=y CONFIG_PACKAGE_periodicstats=y
CONFIG_PACKAGE_stunc=m CONFIG_PACKAGE_stunc-mbedtls=m
CONFIG_PACKAGE_swmodd=m CONFIG_PACKAGE_swmodd=m
CONFIG_PACKAGE_twamp=m CONFIG_PACKAGE_twamp=m
CONFIG_PACKAGE_udpechoserver=m CONFIG_PACKAGE_udpecho-client=m
CONFIG_PACKAGE_udpecho-server=m
CONFIG_PACKAGE_xmppc=m CONFIG_PACKAGE_xmppc=m
# WebGUI # # WebGUI #
@@ -133,6 +133,7 @@ CONFIG_LIBCURL_CRYPTO_AUTH=y
# CONFIG_LIBCURL_MBEDTLS is not set # CONFIG_LIBCURL_MBEDTLS is not set
CONFIG_LIBCURL_OPENSSL=y CONFIG_LIBCURL_OPENSSL=y
CONFIG_PACKAGE_ethtool=y CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip-full=y CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_iperf3=y CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_ipset=y CONFIG_PACKAGE_ipset=y

View File

@@ -1,57 +0,0 @@
#
# Copyright (C) 2012-2014 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:=libmicroxml
PKG_VERSION:=2012-06-11
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
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
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
define Package/libmicroxml
SECTION:=libs
CATEGORY:=Libraries
TITLE:=XML library
MAINTAINER:=Luka Perkov <luka@openwrt.org>
endef
define Package/libmicroxml/description
A micro sized XML library
endef
CONFIGURE_ARGS += \
--disable-threads \
--enable-static \
--enable-shared
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/microxml.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libmicroxml.so* $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_BUILD_DIR)/microxml.pc $(1)/usr/lib/pkgconfig
endef
define Package/libmicroxml/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libmicroxml.so* $(1)/usr/lib
endef
$(eval $(call BuildPackage,libmicroxml))

View File

@@ -1,130 +0,0 @@
diff --git a/mxml-file.c b/mxml-file.c
index 02eca9d..f10d202 100644
--- a/mxml-file.c
+++ b/mxml-file.c
@@ -363,9 +363,12 @@ mxmlSaveFile(mxml_node_t *node, /* I - Node to write */
* Write the node...
*/
- if ((col = mxml_write_node(node, fp, cb, 0, mxml_file_putc, global)) < 0)
+ if ((col = mxml_write_node(node, fp, cb, 0, mxml_file_putc, global)) < 0){
+ global_free(global);
return (-1);
-
+ }
+
+ global_free(global);
if (col > 0)
if (putc('\n', fp) < 0)
return (-1);
@@ -1448,6 +1451,7 @@ mxml_load_data(
if ((buffer = malloc(64)) == NULL)
{
mxml_error("Unable to allocate string buffer!");
+ global_free(global);
return (NULL);
}
@@ -2083,11 +2087,12 @@ mxml_load_data(
node->parent ? node->parent->value.element.name : "(null)");
mxmlDelete(first);
-
+ global_free(global);
return (NULL);
}
}
+ global_free(global);
if (parent)
return (parent);
else
@@ -2102,7 +2107,7 @@ error:
mxmlDelete(first);
free(buffer);
-
+ global_free(global);
return (NULL);
}
diff --git a/mxml-private.c b/mxml-private.c
index 4378ca3..ea6e452 100644
--- a/mxml-private.c
+++ b/mxml-private.c
@@ -41,6 +41,32 @@
* This code currently supports AIX, HP-UX, Linux, Mac OS X, Solaris, and
* Windows. It might work on the BSDs and IRIX, but I haven't tested that.
*/
+void *global_mem[16] = {0};
+
+static void *global_calloc(int x, int size)
+{
+ int i;
+ void *m = calloc(x, size);
+ for (i = ((sizeof(global_mem)/sizeof(global_mem[0])) - 1); i > 0; i--) {
+ global_mem[i] = global_mem[i-1];
+ }
+ global_mem[0] = m;
+ return m;
+}
+
+void global_free(void *m)
+{
+ int i;
+ if (m == NULL)
+ return;
+ for (i = ((sizeof(global_mem)/sizeof(global_mem[0])) - 1); i >= 0; i--) {
+ if (global_mem[i] == m) {
+ global_mem[i] = NULL;
+ free(m);
+ break;
+ }
+ }
+}
#if defined(__sun) || defined(_AIX)
# pragma fini(_mxml_fini)
@@ -148,7 +174,6 @@ mxml_real_cb(mxml_node_t *node) /* I - Current node */
return (MXML_REAL);
}
-
#ifdef HAVE_PTHREAD_H /**** POSIX threading ****/
# include <pthread.h>
@@ -190,7 +215,6 @@ _MXML_FINI(void)
}
}
-
/*
* '_mxml_global()' - Get global data.
*/
@@ -205,7 +229,7 @@ _mxml_global(void)
if ((global = (_mxml_global_t *)pthread_getspecific(_mxml_key)) == NULL)
{
- global = (_mxml_global_t *)calloc(1, sizeof(_mxml_global_t));
+ global = (_mxml_global_t *)global_calloc(1, sizeof(_mxml_global_t));
pthread_setspecific(_mxml_key, global);
global->num_entity_cbs = 1;
@@ -288,7 +312,7 @@ _mxml_global(void)
if ((global = (_mxml_global_t *)TlsGetValue(_mxml_tls_index)) == NULL)
{
- global = (_mxml_global_t *)calloc(1, sizeof(_mxml_global_t));
+ global = (_mxml_global_t *)global_calloc(1, sizeof(_mxml_global_t));
global->num_entity_cbs = 1;
global->entity_cbs[0] = _mxml_entity_cb;
diff --git a/mxml-private.h b/mxml-private.h
index c591208..72ed338 100644
--- a/mxml-private.h
+++ b/mxml-private.h
@@ -43,3 +43,4 @@ typedef struct _mxml_global_s
extern _mxml_global_t *_mxml_global(void);
extern int _mxml_entity_cb(const char *name);
+extern void global_free(void *m);

View File

@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libtrace PKG_NAME:=libtrace
PKG_VERSION:=3.0.22 PKG_VERSION:=3.0.23
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
@@ -72,11 +72,11 @@ endef
define Package/libtrace/install define Package/libtrace/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libtrace.so.* $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtrace.so.* $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libwandio.so.* $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libwandio.so.* $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump.so.* $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump.so.* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/libpacketdump $(INSTALL_DIR) $(1)/usr/lib/libpacketdump
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump/*.so* $(1)/usr/lib/libpacketdump/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump/*.so* $(1)/usr/lib/libpacketdump/
endef endef
define Package/libtrace-tools/install define Package/libtrace-tools/install

View File

@@ -10,5 +10,8 @@ config AGENT_ISLAND_PREVENTION
bool "Support Island Prevention" bool "Support Island Prevention"
default y if MULTIAP_AGENT_ISLAND_PREVENTION default y if MULTIAP_AGENT_ISLAND_PREVENTION
config AGENT_EASYMESH_R2_CERT
bool "Compile for WFA test bed"
endmenu endmenu
endif endif

View File

@@ -1,16 +1,16 @@
# #
# Copyright (C) 2020-21 IOPSYS Software Solutions AB # Copyright (C) 2020-22 IOPSYS Software Solutions AB
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent PKG_NAME:=map-agent
PKG_VERSION:=7.1.33 PKG_VERSION:=2.9.0.4
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=9d37e0b65571a6e5b9ad05bd79f49dc04d9a1dbb PKG_SOURCE_VERSION:=4f06e11fc17f6c462960cbd8a9835b5a16b53e9c
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu> PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=PROPRIETARY IOPSYS PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
LOCAL_DEV=0 LOCAL_DEV=0
@@ -66,6 +66,10 @@ ifeq ($(CONFIG_AGENT_ISLAND_PREVENTION),y)
TARGET_CFLAGS += -DAGENT_ISLAND_PREVENTION TARGET_CFLAGS += -DAGENT_ISLAND_PREVENTION
endif endif
ifeq ($(CONFIG_AGENT_EASYMESH_R2_CERT),y)
TARGET_CFLAGS += -DEASYMESH_R2_CERT
endif
MAKE_PATH:=src MAKE_PATH:=src
define Package/map-agent/install define Package/map-agent/install

View File

@@ -1,34 +1,132 @@
config agent 'agent' config agent 'agent'
option enabled '1' option enabled '1'
option debug '6' option debug '0'
option profile '2' option profile '2'
option al_bridge 'br-lan' option al_bridge 'br-lan'
option netdev 'wlan'
option island_prevention '0'
option eth_onboards_wifi_bhs '0'
# option controller_macaddr '0a:1b:2c:3d:4e:50'
config dynamic_backhaul
option missing_bh_timer '60'
option missing_bh_reconfig_timer '1800'
config controller_select
option id 'auto'
option probe_int '20'
option retry_int '9'
option autostart '1'
option local '0'
config radio
option device 'phy0'
option band '2'
# options below are auto-generated during onboarding
# option steer_policy '0'
# option util_threshold '0'
# option rcpi_threshold '70'
# option report_rcpi_threshold '80'
# option rcpi_hysteresis_margin '0'
# option report_util_threshold '0'
# option include_sta_stats '1'
# option include_sta_metric '1'
config radio
option device 'phy1'
option band '5'
# options below are auto-generated during onboarding
# option steer_policy '0'
# option util_threshold '0'
# option rcpi_threshold '86'
# option report_rcpi_threshold '96'
# option rcpi_hysteresis_margin '0'
# option report_util_threshold '0'
# option include_sta_stats '1'
# option include_sta_metric '1'
config bsta
option enabled '1'
option ifname 'wlan0'
option band '2'
option device 'phy0'
option priority '2'
# options below are auto-generated during onboarding
# option ssid 'MAP-BH-2.4GHz'
# option encryption 'sae-mixed'
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
# option onboarded '1'
# option bssid '0a:1b:2c:3d:4e:53'
# option vid '1'
config bsta
option enabled '1'
option ifname 'wlan1'
option band '5'
option device 'phy1'
option priority '0'
# options below are auto-generated during onboarding
# option ssid 'MAP-BH-5GHz'
# option encryption 'sae-mixed'
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
# option onboarded '1'
# option bssid '0a:1b:2c:3d:4e:54'
# option vid '1'
# ap sections and policy section are
# auto-generated during onboarding
#
#config ap #config ap
# 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'
# option type 'fronthaul'
#config ap
# 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'
# option type 'fronthaul'
#config bsta
# option ifname 'apclii0'
# option enabled '1' # option enabled '1'
# option onboarded '0' # option ifname 'wlan0-1'
# option disallow_bsta '1 # bitmap, 1 for disallow p1, 2 to disallow p2, 3 to disallow both (probably never applicable) # option band '2'
# option device 'phy0'
# option type 'fronthaul'
# option ssid 'IOWRT-2.4GHz'
# option encryption 'sae-mixed+aes'
# option key '1234567890'
# option vid '1'
#config ap
# option enabled '1'
# option ifname 'wlan0-2'
# option band '2'
# option device 'phy0'
# option type 'backhaul'
# option ssid 'MAP-BH-2.4GHz'
# option encryption 'sae+aes'
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
# option disallow_bsta '0'
# option vid '1'
#config ap
# option enabled '1'
# option ifname 'wlan1-1'
# option band '5'
# option device 'phy1'
# option type 'fronthaul'
# option ssid 'IOWRT-5GHz'
# option encryption 'sae-mixed+aes'
# option key '1234567890'
# option vid '1'
#config ap
# option enabled '1'
# option ifname 'wlan1-2'
# option band '5'
# option device 'phy1'
# option type 'backhaul'
# option ssid 'MAP-BH-5GHz'
# option encryption 'sae+aes'
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
# option disallow_bsta '0'
# option vid '1'
#config policy
# option report_interval '0'
# option pvid '1'
# option pcp_default '0'
# option report_scan '0'
# option report_sta_assocfails '0'
# option report_sta_assocfails_rate '0'

View File

@@ -80,7 +80,8 @@ validate_agent_section() {
'vlan_segregation:bool:false' \ 'vlan_segregation:bool:false' \
'resend_num:uinteger:0' \ 'resend_num:uinteger:0' \
'dyn_cntlr_sync:bool:true' \ 'dyn_cntlr_sync:bool:true' \
'island_prevention:bool:true' 'island_prevention:bool:false' \
'eth_onboards_wifi_bhs:bool:false'
[ "$?" -ne 0 ] && { [ "$?" -ne 0 ] && {
@@ -148,7 +149,8 @@ validate_radio_section() {
'include_sta_stats:bool:false' \ 'include_sta_stats:bool:false' \
'include_sta_metric:bool:false' \ 'include_sta_metric:bool:false' \
'rcpi_hysteresis_margin:range(0,255)' \ 'rcpi_hysteresis_margin:range(0,255)' \
'report_util_threshold:range(0,255)' 'report_util_threshold:range(0,255)' \
'encryption:or("sae", "psk2", "sae-mixed")'
[ "$?" -ne 0 ] && { [ "$?" -ne 0 ] && {
logger -s -t "mapagent" "Validation of radio section failed" logger -s -t "mapagent" "Validation of radio section failed"
@@ -185,6 +187,8 @@ validate_dyn_bh_section() {
uci_validate_section mapagent $section "${1}" \ uci_validate_section mapagent $section "${1}" \
'missing_bh_timer:range(1,255)' 'missing_bh_timer:range(1,255)'
uci_validate_section mapagent $section "${1}" \
'missing_bh_reconfig_timer:range(0,65535)'
[ "$?" -ne 0 ] && { [ "$?" -ne 0 ] && {
logger -s -t "mapagent" "Validation of dynamic backhaul section failed" logger -s -t "mapagent" "Validation of dynamic backhaul section failed"

View File

@@ -0,0 +1,13 @@
#!/bin/sh
. /lib/functions.sh
unset_pvid() {
local section=$1
uci -q set mapagent.${section}.pvid="0"
}
config_load mapagent
config_foreach unset_pvid policy

View File

@@ -207,7 +207,7 @@ write_credentials() {
#echo applying bk_ssid = "$bk_ssid" bk_key = "$bk_key" #echo applying bk_ssid = "$bk_ssid" bk_key = "$bk_key"
# subshell in hopes to maintain mapagent config loaded # subshell in hopes to maintain mapagent config loaded
echo $(mapagent_apply_wireless $ifname "$bk_ssid" "$bk_key") 2> /dev/null (mapagent_apply_wireless $ifname "$bk_ssid" "$bk_key")
} }
mapagent_find_bbss() { mapagent_find_bbss() {
@@ -356,7 +356,7 @@ write_bsta_config() {
#echo result diff = $diff > /dev/console #echo result diff = $diff > /dev/console
[ "$diff" == "1" ] && { [ "$diff" == "1" ] && {
config_foreach mapagent_apply_bssid_same_band bsta (config_foreach mapagent_apply_bssid_same_band bsta)
#ubus call uci commit '{"config":"wireless"}' #ubus call uci commit '{"config":"wireless"}'
#echo reloading wireless > /dev/console #echo reloading wireless > /dev/console
} }
@@ -377,7 +377,7 @@ teardown_iface() {
[ "$ifname" != "$map_ifname" ] && return [ "$ifname" != "$map_ifname" ] && return
uci -q set wireless.${section}.start_disabled="1" uci -q set wireless.${section}.disabled="1"
uci -q set wireless.${section}.ssid="DISABLED-SSID" uci -q set wireless.${section}.ssid="DISABLED-SSID"
uci -q set wireless.${section}.key="DISABLED-KEY" uci -q set wireless.${section}.key="DISABLED-KEY"
uci -q delete wireless.${section}.multi_ap_backhaul_ssid uci -q delete wireless.${section}.multi_ap_backhaul_ssid
@@ -406,7 +406,7 @@ teardown_iface() {
uci -q set mapagent.${section}.key="DISABLED-KEY" uci -q set mapagent.${section}.key="DISABLED-KEY"
# subshell in hopes to maintain mapagent config loaded # subshell in hopes to maintain mapagent config loaded
$(mapagent_teardown_wireless $ifname) (mapagent_teardown_wireless $ifname)
} }
@@ -488,10 +488,12 @@ bsta_to_wireless() {
mapagent_find_other_creds() { mapagent_find_other_creds() {
#echo "trying to find other creds for $2" > /dev/console #echo "trying to find other creds for $2" > /dev/console
local other_section="$2"
config_get band $1 band config_get band $1 band
config_get onboarded $1 onboarded "0" config_get onboarded $1 onboarded "0"
[ "$3" != "$band" -o "$onboarded" = "0" ] && return [ "$4" != "$band" -o "$onboarded" = "0" ] && return
config_get ssid $1 ssid config_get ssid $1 ssid
config_get key $1 key config_get key $1 key
@@ -499,7 +501,12 @@ bsta_to_wireless() {
config_get enabled $1 enabled "0" config_get enabled $1 enabled "0"
config_get bssid $1 bssid config_get bssid $1 bssid
echo $(mapagent_apply_wl_bsta $2 "$ssid" "$key" $encryption $4 "$bssid") uci -q set mapagent.${other_section}.ssid="$ssid"
uci -q set mapagent.${other_section}.key="$key"
uci -q set mapagent.${other_section}.encryption=$encryption
uci -q set mapagent.${other_section}.bssid="$bssid"
uci commit mapagent
(mapagent_apply_wl_bsta "$3" "$ssid" "$key" $encryption "$5" "$bssid")
} }
config_get band $1 band config_get band $1 band
@@ -508,14 +515,14 @@ bsta_to_wireless() {
config_get enabled $1 enabled "0" config_get enabled $1 enabled "0"
if [ "$onboarded" = "0" ]; then if [ "$onboarded" = "0" ]; then
config_foreach mapagent_find_other_creds bsta $ifname $band $enabled config_foreach mapagent_find_other_creds bsta $1 $ifname $band $enabled
else else
config_get ssid $1 ssid config_get ssid $1 ssid
config_get key $1 key config_get key $1 key
config_get encryption $1 encryption config_get encryption $1 encryption
config_get bssid $1 bssid config_get bssid $1 bssid
echo $(mapagent_apply_wl_bsta $ifname "$ssid" "$key" $encryption $enabled "$bssid") (mapagent_apply_wl_bsta $ifname "$ssid" "$key" $encryption $enabled "$bssid")
fi fi
} }
@@ -665,7 +672,7 @@ bsta_scan_on_enabled() {
bsta_enable_all() { bsta_enable_all() {
mapagent_enable_bk() { mapagent_enable_bk() {
config_get ifname $1 ifname "2" config_get ifname $1 ifname
uci -q set mapagent.$1.enabled="1" uci -q set mapagent.$1.enabled="1"
} }
@@ -676,6 +683,54 @@ bsta_enable_all() {
bsta_scan_on_enabled bsta_scan_on_enabled
} }
bsta_clear_all_bssid() {
mapagent_remove_bssid() {
uci -q set mapagent.$1.enabled="1"
uci -q del mapagent.$1.bssid
}
wireless_remove_bssid() {
config_get mode $1 mode
config_get ifname $1 ifname
[ "$mode" != "sta" ] && return
uci -q del wireless.$1.bssid
wpa_cli -i "$ifname" bssid 0 00:00:00:00:00:00 > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
config_load mapagent
config_foreach mapagent_remove_bssid bsta
uci commit mapagent
config_load wireless
config_foreach wireless_remove_bssid wifi-iface
uci commit wireless
}
# arg1 = ifname arg2 = bssid
bsta_blacklist_bssid_set() {
local ifname="$1"
shift
local bssid="$@"
wpa_cli -i "$ifname" set_network 0 bssid_ignore "$bssid" > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
bsta_blacklist_bssid_clear() {
mapagent_blacklist_by_band() {
config_get ifname $1 ifname
wpa_cli -i "$ifname" set_network 0 bssid_ignore "" > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
config_load mapagent
config_foreach mapagent_blacklist_by_band bsta
}
bsta_disable_lower_priority() { bsta_disable_lower_priority() {
config_load mapagent config_load mapagent
@@ -725,7 +780,7 @@ bsta_disable_lower_priority() {
uci -q set mapagent.$1.enabled="$enabled" uci -q set mapagent.$1.enabled="$enabled"
echo $(mapagent_apply_wl_bsta $ifname $enabled) > /dev/null (mapagent_apply_wl_bsta $ifname $enabled) > /dev/null
} }
local bsta=$1 local bsta=$1
@@ -759,6 +814,12 @@ bsta_use_link() {
local bsta=$1 local bsta=$1
config_foreach mapagent_disable_bk bsta $bsta config_foreach mapagent_disable_bk bsta $bsta
noht=$(iw $bsta info | grep "no HT")
[ -n "$noht" ] && {
logger -t multiap "no HT hit, issue reassoc $bsta"
wpa_cli -i $bsta reassoc
}
} }
bsta_swap_to_link() { bsta_swap_to_link() {
@@ -774,11 +835,14 @@ set_uplink_backhaul_info() {
local ul_1905id=$1 local ul_1905id=$1
local ul_mac=$2 local ul_mac=$2
json_load "$(cat $MAPFILE)" (
json_add_string "backhaul_device_id" "$ul_1905id" flock -x 200
json_add_string "backhaul_macddr" "$ul_mac" json_load "$(cat $MAPFILE)"
json_dump > "$MAPFILE" json_add_string "backhaul_device_id" "$ul_1905id"
json_cleanup json_add_string "backhaul_macddr" "$ul_mac"
json_dump > "$MAPFILE"
json_cleanup
) 200>/var/lock/map.backhaul.lock
} }
set_uplink() { set_uplink() {
@@ -792,11 +856,16 @@ set_uplink() {
json_add_string "type" "$type" json_add_string "type" "$type"
json_add_string "ifname" "$ifname" json_add_string "ifname" "$ifname"
json_add_string "macaddr" "$hwaddr" json_add_string "macaddr" "$hwaddr"
json_dump > "$MAPFILE" (
flock -x 200
json_dump > "$MAPFILE"
) 200>/var/lock/map.backhaul.lock
json_cleanup json_cleanup
config_load mapagent config_load mapagent
ubus send map.agent '{"action":"unset", "type":"'$type'", "ifname":"'$ifname'", "macaddr":"'$hwaddr'"}'
island_prevention="$(uci -q get mapagent.agent.island_prevention)" island_prevention="$(uci -q get mapagent.agent.island_prevention)"
if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then
@@ -816,7 +885,16 @@ unset_uplink() {
ubus call map.agent toggle_fh '{"enable":false, "prevent_island":true, "ifname":"all"}' ubus call map.agent toggle_fh '{"enable":false, "prevent_island":true, "ifname":"all"}'
fi fi
rm -f "$MAPFILE" > /dev/null 2>&1
(
flock -x 200
json_load "$(cat $MAPFILE)"
json_get_var bk_type type
json_cleanup
ubus send map.agent '{"action":"unset", "type":"'$type'", "bk_type":"'$bk_type'"}'
[ "$type" = "$bk_type" ] && rm -f "$MAPFILE" > /dev/null 2>&1
) 200>/var/lock/map.backhaul.lock
} }
func=$1 func=$1
@@ -836,6 +914,9 @@ case "$func" in
sync_mapcontroller_from_wireless) sync_mapcontroller_from_wireless $@;; sync_mapcontroller_from_wireless) sync_mapcontroller_from_wireless $@;;
ts) ts_sub $@;; ts) ts_sub $@;;
bsta_enable_all) bsta_enable_all $@;; bsta_enable_all) bsta_enable_all $@;;
bsta_clear_all_bssid) bsta_clear_all_bssid $@;;
bsta_blacklist_bssid_set) bsta_blacklist_bssid_set $@;;
bsta_blacklist_bssid_clear) bsta_blacklist_bssid_clear $@;;
bsta_disable_lower_priority) bsta_disable_lower_priority $@;; bsta_disable_lower_priority) bsta_disable_lower_priority $@;;
bsta_scan_on_enabled) bsta_scan_on_enabled $@;; bsta_scan_on_enabled) bsta_scan_on_enabled $@;;
bsta_use_link) bsta_use_link $@;; bsta_use_link) bsta_use_link $@;;

View File

@@ -2,6 +2,9 @@
. /lib/functions.sh . /lib/functions.sh
AL_BRIDGE=${AL_BRIDGE-"br-lan"}
PRIMARY_VID=${PRIMARY_VID-1}
### Traffic Separation ### ### Traffic Separation ###
dbg() { dbg() {
@@ -9,456 +12,157 @@ dbg() {
} }
ts_sub() { ts_sub() {
ts_usage() { ts_usage() {
cat <<EOF cat <<EOF
Usage: $0 [create|delete|populate|primary|reload] Usage: $0 [create|reload]
Traffic Separation related functions. Traffic Separation related functions.
create fh <iface> <vid> - create vlan device and rules for wifi fronthaul create vid - create vlan configuration with vlan_id
create bh <iface> <vid> <profile> - create vlan device and rules for wifi backhaul reload - reload network with new configuration
create eth <iface> <vid> <pbits> - create vlan device and rules for logical ethernet interface
delete <iface> - delete vlan device
populate eth <iface> <vid> - add secondary network rules for logical ethernet interface
primary get <iface> - read primary VID for interface from driver (from Association Response frame IE)
reload - reload network with new configuration
EOF EOF
exit 1 exit 1
} }
_get_bridge() { ts_create() {
local bridge=$(ip link show $1 | grep -o "master [^\s]*" | cut -d ' ' -f 2) _net_setup() {
echo $bridge local name=$1
} local vid=$2
local proto=$3
local dev=$4
local port_dev=$5
set_wireless_bridge() { [ -z "$(uci -q get network.${name})" ] || return
config_load wireless
_set_network() { local ip_addr="192.168.${vid}.1"
local sec=$1 local br_dev="${AL_BRIDGE/-/_}"
local iface=$2 local tag=":t"
local bridge=$3
config_get ifname $sec ifname [ "${vid}" = "${PRIMARY_VID}" ] && {
[ "$iface" != "$ifname" ] && continue tag=""
config_get mode $sec mode # Global options
config_get multi_ap $sec multi_ap "0" [ -z "$(uci -q get network.${br_dev}.vlan_filtering)" ] && {
[ "$mode" = "sta" -a "$multi_ap" = "1" ] && continue uci -q set network.${br_dev}.vlan_filtering=1;
}
config_get network $sec network uci -q delete network.lan.proto
local new_network=${bridge##br-} uci -q delete network.lan.ipaddr
if [ "$new_network" != "$network" ] ; then uci -q delete network.lan.netmask
uci -q set wireless.${sec}.network=${new_network} uci -q delete network.lan.ip6assign
uci commit wireless }
uci -q set network.${name}="interface"
uci -q set network.${name}.device="$dev"
uci -q set network.${name}.is_lan="1"
if [ "$proto" = "static" ] ; then
uci -q set network.${name}.proto="static"
# TODO vid > 255
uci -q set network.${name}.ipaddr="${ip_addr}"
uci -q set network.${name}.netmask="255.255.255.0"
uci -q set network.${name}.ip6assign '60'
else
uci -q set network.${name}.proto="dhcp"
fi fi
brctl addif $bridge $iface &> /dev/null uci -q add network bridge-vlan
} uci -q set network.@bridge-vlan[-1].device="$AL_BRIDGE"
uci -q set network.@bridge-vlan[-1].vlan="$vid"
config_foreach _set_network wifi-iface ${1} ${2} for port in $(uci -q get network.${br_dev}.ports) ; do
} echo $port | grep -q eth || continue
uci -q add_list network.@bridge-vlan[-1].ports="${port}${tag}"
ts_create() {
_create_vlan_dev() {
iface=$1 # real iface
vid=$2 # Vlan ID
bridge=$3 # bridge iface should be connected
vlan_dev=$4
old_bridge="$(_get_bridge $iface)" # bridge iface is connected to
# remove interface from bridge if it is in one
[ -n "$old_bridge" ] && brctl delif $old_bridge $iface &> /dev/null
# (re)create vlan device
ip link show $vlan_dev && vlanctl --if-delete $vlan_dev
vlanctl --mcast --if-create-name $iface $vlan_dev --if $iface --set-if-mode-rg
vlanctl --if $iface --tx --tags 0 --default-miss-drop
vlanctl --if $iface --tx --tags 1 --default-miss-drop
vlanctl --if $iface --tx --tags 2 --default-miss-drop
vlanctl --if $iface --rx --tags 0 --default-miss-drop
vlanctl --if $iface --rx --tags 1 --default-miss-drop
vlanctl --if $iface --rx --tags 2 --default-miss-drop
# bring the vlan device up and add back to bridge if it was in one
brctl addif $bridge $vlan_dev &> /dev/null
}
ts_create_fh() {
iface=$1 # fh iface
vid=$2 # SSID specific (secondary) or primary vid
bridge=$3
[ -n "$iface" ] && [ -n "$vid" ] && [ -n "$bridge" ] || {
cat <<EOF
Adding FH device requires IFACE, VID and bridge
EOF
exit 1
}
# create vlan device
#set_wireless_bridge $iface $bridge
vlan_dev=${iface}_vlan${vid}
ip link set $vlan_dev down
_create_vlan_dev $iface $vid $bridge $vlan_dev
# add rules
# vlanctl --if $iface --rx --tags 0 --filter-ethertype 0x886c --set-rxif $vlan_dev --rule-append # incoming brcm
# EAPOL frames
vlanctl --if $iface --rx --tags 0 --filter-ethertype 34958 --set-rxif $vlan_dev --rule-append
vlanctl --if $iface --rx --tags 1 --filter-ethertype 34958 --pop-tag --set-rxif $vlan_dev --rule-append
vlanctl --if $iface --tx --tags 0 --filter-txif $vlan_dev --filter-ethertype 34958 --rule-append
# 8021q vlan id TAG/UNTAG
vlanctl --if $iface --rx --tags 0 --set-rxif $vlan_dev --push-tag --set-vid $vid 0 --rule-append
vlanctl --if $iface --tx --tags 1 --filter-txif $vlan_dev --filter-vid $vid 0 --pop-tag --dscp2pbits 0 --rule-append
ip link set $iface up
ip link set $vlan_dev up
}
ts_create_bh() {
iface=$1 # bh iface
vid=$2 # primary vid
profile=$3 # agent profile (1 or 2)
bridge=$4 # bridge interface should be connected to
[ -n "$iface" ] && [ -n "$vid" ] && [ -n "$profile" ] || {
cat <<EOF
Adding BH device requires IFACE, VID and PROFILE (1 or 2).
EOF
exit 1
}
#[ -n "$bridge" ] && set_wireless_bridge $iface $bridge
old_vid=$(wl -i $1 map_8021q_settings)
old_vid=${old_vid##* }
old_profile=$(wl -i $1 map_profile | cut -d ' ' -f 3)
[ "$old_vid" = "$vid" -a "$old_profile" = "$profile" ] && return
wl vlan_mode 0 &> /dev/null # make sure this is OFF, else driver won't handle vlan
wl -i $iface down &> /dev/null
wl -i $iface map_profile $profile &> /dev/null # only has effect on profile 2
wl -i $iface map_8021q_settings $vid &> /dev/null # can only be set on bBSS (read-only on bSTA)
wl -i $iface up &> /dev/null
}
ts_create_lei() {
vid=$1 # primary vid
pbits=$2 # default pbits to apply
vlan_bridge=$3 # name of ts subsystem bridge
lan_bridge=$4 # name of node local bridge
[ -n "$vid" ] && [ -n "$pbits" ] && [ -n "$vlan_bridge" ] && [ -n "$lan_bridge" ] || {
cat <<EOF
Adding ETH device requires IFACE, VID, PBITS and name of vlan and lan bridges.
EOF
exit 1
}
ip link show lei &> /dev/null || {
ip link add link lei name lei_lan type vlan id 1 2>/dev/null
}
old_vid=$(ip -d link show lei_lan | sed -n 's/vlan.*id \([0-9][0-9]*\) .*/\1/p')
[ "$old_vid" != "$vid" ] && {
ip link del lei_lan
ip link add link lei name lei_lan type vlan id ${vid}
}
brctl addif ${lan_bridge} lei_lan &>/dev/null
brctl addif ${vlan_bridge} lei_map &>/dev/null
ip link set lei up
ip link set lei_map up
ip link set lei_lan up
}
_create_eth() {
iface=$1 # Multi-AP Logical Ethernet Interface
vid=$2 # primary vid
bridge=$3 # name of ts subsystem bridge
pbits=0
[ -n "$iface" ] && [ -n "$vid" ] && [ -n "$bridge" ] || {
cat <<EOF
Adding ETH device requires IFACE, VID, PBITS and name of vlan and lan bridges.
EOF
exit 1
}
dbg create $@
ip link set $iface down
vlan_dev=${iface}_vlan${vid}
ip link set $vlan_dev down
_create_vlan_dev $iface $vid $bridge $vlan_dev
vlanctl --if $iface --rx --tags 0 --set-rxif $vlan_dev --push-tag --set-vid $vid 0 --set-pbits $pbits 0 --rule-append
vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --pop-tag --rule-append
[ $# -le 3 ] && exit 0
shift 3
while [ -n "$1" ] ; do
vid=$1
vlanctl --if $iface --rx --tags 1 --filter-vid $vid 0 --set-rxif $vlan_dev --rule-append
vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --rule-append
shift
done done
ip link set $iface up uci -q add_list network.${br_dev}.ports="$port_dev"
ip link set $vlan_dev up uci -q add_list network.@bridge-vlan[-1].ports="$port_dev"
uci -q commit network
} }
ts_create_eths() { _dhcp_setup() {
pvid=$1 # primary vid local name=$1
bridge=$2 # name of ts subsystem bridge
shift 2 [ -n "$(uci -q get dhcp.${name})" ] && return
# TODO use ieee1905 bridge
for iface in $(uci get network.br_lan.ports) ; do uci -q set dhcp.${name}=dhcp
[ "$iface" = "lei_lan" ] && continue uci -q set dhcp.${name}.interface="${name}"
_create_eth $iface $pvid $bridge $@ uci -q set dhcp.${name}.start="100"
ubus call ieee1905 del_interface "{\"ifname\":\"$iface\"}" uci -q set dhcp.${name}.limit="150"
done uci -q set dhcp.${name}.leasetime="1h"
uci -q set dhcp.${name}.dhcpv4="server"
uci -q set dhcp.${name}.dhcpv6="server"
uci -q set dhcp.${name}.ra="server"
uci -q set dhcp.${name}.ra_slaac="1"
uci -q add_list dhcp.${name}.ra_flags="managed-config"
uci -q add_list dhcp.${name}.ra_flags="other-config"
uci -q commit dhcp
} }
ts_create_dhcp() { _firewall_setup() {
local diff="" local name=$1
local network=$1
local vid=$2
local zone_exist=0
_net_setup() { config_load firewall
local name=$1
local devname=$2
local vid=$3
[ -z "$(uci -q get network.${name})" ] && { _process_zone() {
uci -q set network.${name}="interface" local section=$1
uci -q set network.${name}.device="$devname" local new_name=$2
uci -q set network.${name}.is_lan="1" local name
uci -q set network.${name}.proto="static"
# TODO vid > 255
local ip_addr="192.168.${vid}.1"
[ "${vid}" = "1" ] && ip_addr="192.168.${vid}.2"
uci -q set network.${name}.ipaddr="${ip_addr}"
uci -q set network.${name}.netmask="255.255.255.0"
diff="1" config_get name $section name
}
[ "$diff" = "1" ] && uci -q commit network [ "$name" == "$new_name" ] && zone_exist=1
} }
_br_setup() { config_foreach _process_zone zone $name
local name=$1
local sinkname=$2
local vid=$3
[ -z "$(uci -q get network.${name}_dev)" ] && { [ "$zone_exist" != "0" ] && return
uci -q set network.${name}_dev="device"
uci -q set network.${name}_dev.name="br-${name}"
uci -q set network.${name}_dev.type="bridge"
uci -q set network.${name}_dev.bridge_empty="1"
uci -q add_list network.${name}_dev.ports="${sinkname}"
diff="1" [ "${vid}" = "${PRIMARY_VID}" ] && {
} uci -q delete firewall.lan
[ -z "$(uci -q get network.${name})" ] && {
uci -q set network.${name}="interface"
uci -q set network.${name}.device="br-${name}"
uci -q set network.${name}.is_lan="1"
uci -q set network.${name}.proto="static"
uci -q set network.${name}.ipaddr="192.168.${vid}.1"
uci -q set network.${name}.netmask="255.255.255.0"
diff="1"
}
[ "$diff" = "1" ] && uci -q commit network
} }
_dhcp_setup() { uci -q add firewall zone
local name=$1 uci -q set firewall.@zone[-1].name="$name"
uci -q add_list firewall.@zone[-1].network="$network"
uci -q set firewall.@zone[-1].input='ACCEPT'
uci -q set firewall.@zone[-1].output='ACCEPT'
uci -q set firewall.@zone[-1].forward='ACCEPT'
[ -n "$(uci -q get dhcp.${name})" ] && return uci -q add firewall forwarding
uci -q set firewall.@forwarding[-1].src="$name"
uci -q set firewall.@forwarding[-1].dest="wan"
uci -q set dhcp.${name}=dhcp uci -q commit firewall
uci -q set dhcp.${name}.interface="${name}"
uci -q set dhcp.${name}.start="100"
uci -q set dhcp.${name}.limit="150"
uci -q set dhcp.${name}.leasetime="1h"
uci -q set dhcp.${name}.dhcpv4="server"
uci -q set dhcp.${name}.dhcpv6="server"
uci -q set dhcp.${name}.ra="server"
uci -q set dhcp.${name}.ra_slaac="1"
uci -q add_list dhcp.${name}.ra_flags="managed-config"
uci -q add_list dhcp.${name}.ra_flags="other-config"
diff="1"
uci -q commit dhcp
}
_firewall_setup() {
local name=$1
local network=$2
local zone_exist=0
config_load firewall
_process_zone() {
local section=$1
local new_name=$2
local name
config_get name $section name
[ "$name" == "$new_name" ] && zone_exist=1
}
config_foreach _process_zone zone $name
[ "$zone_exist" != "0" ] && return
uci -q add firewall zone
uci -q set firewall.@zone[-1].name="$name"
uci -q add_list firewall.@zone[-1].network="$network"
uci -q set firewall.@zone[-1].input='ACCEPT'
uci -q set firewall.@zone[-1].output='ACCEPT'
uci -q set firewall.@zone[-1].forward='ACCEPT'
uci -q add firewall forwarding
uci -q set firewall.@forwarding[-1].src="$name"
uci -q set firewall.@forwarding[-1].dest="wan"
diff="1"
uci -q commit firewall
}
vid=$1 # primary vid
[ -n "$vid" ] || {
cat <<EOF
VID required to configure DHCP.
EOF
exit 1
}
ip link show sink${vid} || {
ip link add sink${vid} type veth peer name sink${vid}_vlan
ip link add link sink${vid} name sink${vid}_peer type vlan id ${vid}
}
ip link set sink${vid} up
ip link set sink${vid}_peer up
ip link set sink${vid}_vlan up
diff=""
_net_setup sink${vid} sink${vid}_peer ${vid}
_dhcp_setup sink${vid}
_firewall_setup lan${vid} sink${vid}
[ "$diff" = "1" ] && {
ubus call network reload
ubus -t 5 wait_for network.interface.sink${vid}
}
brctl addif br-map sink${vid}_vlan &> /dev/null
} }
local type=$1 vid=$1
shift
case "$type" in [ -n "$vid" ] || {
fh) ts_create_fh $@;;
bh) ts_create_bh $@;;
lei) ts_create_lei $@;;
eths) ts_create_eths $@;;
dhcp) ts_create_dhcp $@;;
--help|help) ts_usage;;
*) ts_usage; exit 1;;
esac
}
ts_delete() {
iface=$1
path=$(ls -d /sys/class/net/${iface}/upper_*)
[ -z "$path" ] && exit 0
vlan_dev=${path##*upper_}
bridge="$(_get_bridge $vlan_dev)"
[ -n "$bridge" ] && {
vlanctl --if-delete $vlan_dev # note: also removes rules and removes from bridge
brctl addif $bridge $iface &> /dev/null # needed to add again
}
}
ts_populate() {
local type=$1
shift
[ "$type" == "eth" ] || {
cat <<EOF cat <<EOF
Populating ETH rules requires IFACE and VID. VID required to configure.
EOF EOF
exit 1 exit 1
} }
iface=$1 # Multi-AP Logical Ethernet Interface ip link show sink${vid} 2> /dev/null || {
vid=$2 # secondary vid ip link add sink${vid} type veth peer name sink_peer${vid}
}
path=$(ls -d /sys/class/net/${iface}/upper_*) ip link set sink${vid} up
[ -z "$path" ] && exit 1 ip link set sink_peer${vid} up
vlan_dev=${path##*upper_}
# add rules proto="dhcp"
#vlanctl --if $iface --rx --tags 1 --filter-vid $vid 0 --set-rxif $vlan_dev --rule-append # note: retain secondary vids [ -x "/usr/sbin/mapcontroller" ] && proto="static" ;
#vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --rule-append # note: already default _net_setup "vlan${vid}" ${vid} ${proto} "sink${vid}" "sink_peer${vid}"
}
ts_primary() { [ -x "/usr/sbin/mapcontroller" ] && {
local func=$1 _dhcp_setup vlan${vid}
shift _firewall_setup vlan${vid} ${vid}
}
case "$func" in
get) vid=$(wl -i $1 map_8021q_settings); echo ${vid##* };;
*) ts_usage; exit 1;;
esac
}
ts_unicast() {
local mac=$1
local iface=$2
# TODO: improve?
res=$(ebtables -t broute -L | grep -i "$mac" | grep "$iface")
[ -n "$res" ] && return
ebtables -t broute -D BROUTING -d "$mac" -p 0x893a -j DROP
ebtables -t broute -I BROUTING -i "$iface" -d "$mac" -p 0x893a -j DROP
}
ts_multicast() {
local iface=$1
# TODO: improve?
res=$(ebtables -t broute -L | grep -i "1:80:C2:00:00:13" | grep "$iface")
[ -n "$res" ] && return
ebtables -t broute -D BROUTING -d 01:80:C2:00:00:13 -p 0x893a -j DROP
ebtables -t broute -D BROUTING -i "$iface" -d 01:80:C2:00:00:13 -p 0x893a -j DROP
ebtables -t broute -I BROUTING -i "$iface" -d 01:80:C2:00:00:13 -p 0x893a -j DROP
} }
ts_reload() { ts_reload() {
@@ -466,32 +170,32 @@ EOF
# workaround for missing backhaul wifi.ap.* ubus obj's: # workaround for missing backhaul wifi.ap.* ubus obj's:
# iterate in config and setup bh # iterate in config and setup bh
config_load wireless # config_load wireless
_setup_bh_iface() { # _setup_bh_iface() {
local sec=$1 # local sec=$1
local iface=$2 # local iface=$2
local bridge=$3 # local bridge=$3
config_get ifname $sec ifname # config_get ifname $sec ifname
config_get mode $sec mode # config_get mode $sec mode
config_get multi_ap $sec multi_ap "0" # config_get multi_ap $sec multi_ap "0"
[ "$mode" = "ap" -a "$multi_ap" = "1" ] && { # [ "$mode" = "ap" -a "$multi_ap" = "1" ] && {
ts_create bh $ifname 1 2 br-map # ts_create bh $ifname 1 2 br-map
} # }
} #}
config_foreach _setup_bh_iface wifi-iface # config_foreach _setup_bh_iface wifi-iface
[ -n "dhcp_reload" ] && /etc/init.d/dnsmasq reload [ -n "dhcp_reload" ] && /etc/init.d/dnsmasq reload
ubus call uci commit '{"config":"network"}'
/etc/init.d/firewall reload
# another workaround for netif? removed
# sink devices for br-map bridge #for sink in $(ubus list network.interface.sink*) ; do
for sink in $(ubus list network.interface.sink*) ; do # local sink_vlan=${sink/network.interface./}_vlan
local sink_vlan=${sink/network.interface./}_vlan #done
brctl addif br-map $sink_vlan &> /dev/null
done
} }
local func=$1 local func=$1
@@ -499,11 +203,6 @@ EOF
case "$func" in case "$func" in
create) dbg "create $@"; ts_create $@;; create) dbg "create $@"; ts_create $@;;
delete) dbg "delete $@"; ts_delete $@;;
populate) dbg "populate $@"; ts_populate $@;;
primary) dbg "primary $@"; ts_primary $@;;
unicast) dbg "unicast $@"; ts_unicast $@;;
multicast) dbg "multicast $@"; ts_multicast $@;;
reload) dbg "reload $@"; ts_reload $@;; reload) dbg "reload $@"; ts_reload $@;;
--help|help) ts_usage;; --help|help) ts_usage;;
*) ts_usage; exit 1;; *) ts_usage; exit 1;;

View File

@@ -1,16 +1,13 @@
# #
# Copyright (C) 2020 IOPSYS Software Solutions AB # Copyright (C) 2020-22 IOPSYS Software Solutions AB
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=map-controller PKG_NAME:=map-controller
PKG_VERSION:=6.0.18 PKG_VERSION:=2.8.0.5
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=4029fa48a18e3a6c8af3a2478558e74184fd1786 PKG_SOURCE_VERSION:=da283946e96e2d8b982b0b0518fa84102f0ef4df
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE_FILES:=LICENSE
LOCAL_DEV=0 LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
@@ -20,6 +17,9 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/map-controller define Package/map-controller

View File

@@ -1,67 +1,143 @@
config controller 'controller' config controller 'controller'
option enabled '1' option enabled '1'
option registrar '5 2' #bands on which wps registrar supported option registrar '2 5'
option debug '6' option debug '0'
option enable_sta_steer '0' option enable_sta_steer '0'
option enable_bsta_steer '0' option enable_bsta_steer '0'
option primary_vid '1' option use_bcn_metrics '0'
option use_usta_metrics '0'
option primary_vid '0'
option primary_pcp '0' option primary_pcp '0'
option allow_bgdfs '0'
config interface 'lan' option channel_plan '0'
option 'dhcp'
config ap
option band '5'
option encryption 'sae-mixed'
option key '1234567890'
option ssid 'map-net5'
option vid '1'
option type 'fronthaul'
option network 'lan'
config ap config ap
option band '2' option band '2'
option encryption 'sae-mixed' option encryption 'sae-mixed'
option key '1234567890'
option ssid 'map-net2'
option vid '1' option vid '1'
option type 'fronthaul' option ssid 'IOWRT-2.4GHz'
option network 'lan' option encryption 'sae-mixed'
option key '1234567890'
config ap config ap
option band '5' option band '5'
option encryption 'sae' option type 'fronthaul'
option key '5555555555'
option ssid 'map-bkhaul-5'
option type 'backhaul'
option disallow_bsta '1' # bitmap, 1 for disallow p1, 2 to disallow p2, 3 to disallow both (probably never applicable)
option vid '1' option vid '1'
option network 'lan' option ssid 'IOWRT-5GHz'
option encryption 'sae-mixed'
option key '1234567890'
config ap config ap
option band '2' option band '2'
option encryption 'sae'
option key '2222222222'
option ssid 'map-bkhaul-2'
list disallow_bsta '0' # 0 or 1 profile-1 bSTA
option vid '1'
option type 'backhaul' option type 'backhaul'
option network 'lan' option vid '1'
list disallow_bsta '0'
option ssid 'MAP-BH-2.4GHz'
option encryption 'sae'
option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
config policy 'policy' config ap
list steer_exclude '00:11:22:33:44:55' option band '5'
list steer_exclude_btm '00:aa:bb:cc:dd:ee' option type 'backhaul'
option steer_policy '2' # 0, 1, 2 - see MultiAP spec option vid '1'
option util_threshold '200' # channel-util as in BSS load list disallow_bsta '0'
option rcpi_threshold '30' # 0 - 220 valid range option ssid 'MAP-BH-5GHz'
option report_scan '0' # 0 or 1 for independent scans option encryption 'sae'
option report_sta_assocfails '1' # 0 or 1 - stas assoc failure option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
option report_sta_assocfails_rate '2' # reporting rate for STA assoc fails (attempts per minute)
option report_metric_periodic '0' # 0, or 1 - 255 in secs # node and radio sections (per node) are auto
option report_rcpi_threshold '0' # 0, or 1 - 220 # generated per Multi-AP Agent in the network
option report_util_threshold '0' # 0, or channel-util value #
option rcpi_hysteresis_margin '0' # 0, or > 0 - hysteresis margin #config node 'node_0a1b2c3d4e50'
option include_sta_stats '0' # sta stats in AP metric resp # option agent_id '0a:1b:2c:3d:4e:50'
option include_sta_metric '0' # sta metric in AP metric resp # following values use default values after onboarding if not explicitly set
option disallow_bsta_p1 '0' # 0 or 1 profile-1 bSTA # option backhaul_ul_macaddr '00:00:00:00:00:00'
option disallow_bsta_p2 '0' # 0 or 1 profile-2 bSTA # option backhaul_dl_macaddr '00:00:00:00:00:00'
# option backhaul_type 'none'
# option primary_vid '1'
# option primary_pcp '0'
# option report_sta_assocfails '0'
# option report_sta_assocfails_rate '0'
# option report_metric_periodic '0'
# option report_scan '0'
# option steer_exclude '0'
# option steer_exclude_btm '0'
# option steer_disallow '0'
# option coordinated_cac '0'
# option traffic_separation '0'
# option sta_steer '0'
#config radio 'radio_0a1b2c3d4e53'
# option agent_id '0a:1b:2c:3d:4e:50'
# option macaddr '0a:1b:2c:3d:4e:53'
# option band '2'
# following values use default values after onboarding if not explicitly set
# option steer_policy '0'
# option util_threshold '0'
# option rcpi_threshold '70'
# option report_rcpi_threshold '80'
# option report_util_threshold '0'
# option report_rcpi_hysteresis_margin '0'
# option include_sta_stats '1'
# option include_sta_metric '1'
#config radio 'radio_0a1b2c3d4e54'
# option agent_id '0a:1b:2c:3d:4e:50'
# option macaddr '0a:1b:2c:3d:4e:54'
# option band '5'
# following values use default values after onboarding if not explicitly set
# option steer_policy '0'
# option util_threshold '0'
# option rcpi_threshold '86'
# option report_rcpi_threshold '96'
# option report_util_threshold '0'
# option report_rcpi_hysteresis_margin '0'
# option include_sta_stats '1'
# option include_sta_metric '1'
#config node 'node_3fb1c2d3e460'
# option agent_id '3f:b1:c2:d3:e4:60'
# following values use default values after onboarding if not explicitly set
# option backhaul_ul_macaddr '00:00:00:00:00:00'
# option backhaul_dl_macaddr '00:00:00:00:00:00'
# option backhaul_type 'none'
# option primary_vid '1'
# option primary_pcp '0'
# option report_sta_assocfails '0'
# option report_sta_assocfails_rate '0'
# option report_metric_periodic '0'
# option report_scan '0'
# option steer_exclude '0'
# option steer_exclude_btm '0'
# option steer_disallow '0'
# option coordinated_cac '0'
# option traffic_separation '0'
# option sta_steer '0'
#config radio 'radio_3fb1c2d3e463'
# option agent_id '3f:b1:c2:d3:e4:60'
# option macaddr '3f:b1:c2:d3:e4:63'
# option band '2'
# following values use default values after onboarding if not explicitly set
# option steer_policy '0'
# option util_threshold '0'
# option rcpi_threshold '70'
# option report_rcpi_threshold '80'
# option report_util_threshold '0'
# option report_rcpi_hysteresis_margin '0'
# option include_sta_stats '1'
# option include_sta_metric '1'
#config radio 'radio_3fb1c2d3e464'
# option agent_id '3f:b1:c2:d3:e4:60'
# option macaddr '3f:b1:c2:d3:e4:64'
# option band '5'
# following values use default values after onboarding if not explicitly set
# option steer_policy '0'
# option util_threshold '0'
# option rcpi_threshold '86'
# option report_rcpi_threshold '96'
# option report_util_threshold '0'
# option report_rcpi_hysteresis_margin '0'
# option include_sta_stats '1'
# option include_sta_metric '1'

View File

@@ -23,7 +23,9 @@ validate_controller_section() {
'enable_sta_steer:bool:false' \ 'enable_sta_steer:bool:false' \
'enable_bsta_steer:bool:false' \ 'enable_bsta_steer:bool:false' \
'use_bcn_metrics:bool:false' \ 'use_bcn_metrics:bool:false' \
'use_usta_metrics:bool:false' 'use_usta_metrics:bool:false' \
'allow_bgdfs:range(0,2629744)' \
'channel_plan:range(0,2629744)'
[ "$?" -ne 0 ] && { [ "$?" -ne 0 ] && {
logger -s -t "mapcontroller" "Validation of controller section failed" logger -s -t "mapcontroller" "Validation of controller section failed"

View File

@@ -1,37 +1,40 @@
# #
# Copyright (C) 2020 iopsys # Copyright (C) 2020-22 IOPSYS Software Solutions AB
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology PKG_NAME:=map-topology
PKG_VERSION:=3.2.12 PKG_VERSION:=2.5.0.7
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=dc59897b52ed1406175cd9314759c00aa12ed0a4 PKG_SOURCE_VERSION:=601f5fdc8b4051811593efa714954d4cb3d7b7dd
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=PROPRIETARY IOPSYS PKG_BUILD_DEPENDS:=ieee1905
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/map-topology define Package/map-topology
CATEGORY:=Utilities CATEGORY:=Utilities
DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \ DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \
+libieee1905 +map-plugin +libavahi-nodbus-support +libavahi-nodbus-support +libnetfilter-conntrack +libnfnetlink +libmnl
TITLE:=Utility to build topology of a multi-AP network TITLE:=Utility to build topology of a multi-AP network
endef endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \ -I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \ -I$(STAGING_DIR)/usr/include/libnl3 \
-I$(STAGING_DIR)/usr/include/libnetfilter_conntrack \
-D_GNU_SOURCE -D_GNU_SOURCE
define Package/map-topology/description define Package/map-topology/description

View File

@@ -21,5 +21,9 @@ config OBUSPA_MTP_ENABLE_STOMP
config OBUSPA_MTP_ENABLE_COAP config OBUSPA_MTP_ENABLE_COAP
bool "Enable CoAP as mtp protocol" bool "Enable CoAP as mtp protocol"
default n default n
config OBUSPA_CONTROLLER_MTP_VERIFY
bool "Enable verification of MQTT response topic before processing the message"
default n
endmenu endmenu
endif endif

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=obuspa PKG_NAME:=obuspa
PKG_VERSION:=5.0.0.7 PKG_VERSION:=5.0.0.16
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=79958289d3b5c3ffd3bd0af62e493e1bac757e77 PKG_SOURCE_VERSION:=cd47bcaf1cc82dfd5c10ea76491fd0dae4436cc6
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu> PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
@@ -31,7 +31,7 @@ define Package/obuspa
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=USP agent TITLE:=USP agent
DEPENDS:=+libopenssl +libcurl +libsqlite3 +libubox +libubus +uspd +libmosquitto-ssl +libwebsockets-openssl DEPENDS:=+libopenssl +libuci +libblobmsg-json +libcurl +libsqlite3 +libubox +libubus +libmosquitto-ssl +libwebsockets-openssl
endef endef
define Package/obuspa/description define Package/obuspa/description
@@ -43,11 +43,14 @@ define Package/obuspa/config
endef endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-Wall \ -Wall \
-Werror -Werror
ifneq ($(CONFIG_OBUSPA_CONTROLLER_MTP_VERIFY),)
TARGET_CFLAGS += -DOBUSPA_CONTROLLER_MTP_VERIFY
endif
ifneq ($(CONFIG_OBUSPA_DB_PATH),) ifneq ($(CONFIG_OBUSPA_DB_PATH),)
CONFIGURE_ARGS += \ CONFIGURE_ARGS += \
--localstatedir="$(CONFIG_OBUSPA_DB_PATH)" --localstatedir="$(CONFIG_OBUSPA_DB_PATH)"
@@ -103,6 +106,7 @@ define Package/obuspa/install
$(INSTALL_DATA) ./files/etc/obuspa/roles.json $(1)/etc/obuspa/roles.json $(INSTALL_DATA) ./files/etc/obuspa/roles.json $(1)/etc/obuspa/roles.json
$(INSTALL_DATA) ./files/etc/obuspa/dmcaching_exclude.json $(1)/etc/obuspa/dmcaching_exclude.json $(INSTALL_DATA) ./files/etc/obuspa/dmcaching_exclude.json $(1)/etc/obuspa/dmcaching_exclude.json
$(INSTALL_DATA) ./files/etc/bbfdm/json/USPAgent.json $(1)/etc/bbfdm/json/USPAgent.json $(INSTALL_DATA) ./files/etc/bbfdm/json/USPAgent.json $(1)/etc/bbfdm/json/USPAgent.json
$(INSTALL_DATA) ./files/etc/bbfdm/json/TransferComplete.json $(1)/etc/bbfdm/json/TransferComplete.json
endef endef
$(eval $(call BuildPackage,obuspa)) $(eval $(call BuildPackage,obuspa))

View File

@@ -16,7 +16,6 @@ mqtt_num=0
subs_num=0 subs_num=0
challenge_num=0 challenge_num=0
index=0 index=0
role_def_file=""
PROFILE="/root/.profile" PROFILE="/root/.profile"
. /lib/functions/network.sh . /lib/functions/network.sh
@@ -62,13 +61,15 @@ get_index() {
} }
get_role_index_from_json() { get_role_index_from_json() {
local role="$*" local role="$1"
local role_def_file="$2"
local num=0 local num=0
local roles_obj local roles_obj
# In case of role is empty or file not present # In case of role is empty or file not present
if [ -z "${role}" ] || [ ! -f "${role_def_file}" ]; then if [ -z "${role}" ] || [ ! -f "${role_def_file}" ]; then
return 0 echo "${num}"
return ${num}
fi fi
json_init json_init
@@ -88,11 +89,12 @@ get_role_index_from_json() {
fi fi
if [ "${role}" = "${rname}" ]; then if [ "${role}" = "${rname}" ]; then
echo "${num}"
return ${num} return ${num}
fi fi
done done
return 0 return ${num}
} }
get_uci_ref_index() { get_uci_ref_index() {
@@ -466,7 +468,9 @@ configure_subscription(){
check_json_load() check_json_load()
{ {
local ret=0 local ret
ret=0
if [ -f "${role_def_file}" ]; then if [ -f "${role_def_file}" ]; then
json_init json_init
if json_load_file "${role_def_file}" 2>&1 |grep -q Failed; then if json_load_file "${role_def_file}" 2>&1 |grep -q Failed; then
@@ -481,8 +485,10 @@ check_json_load()
get_role_index() { get_role_index() {
local role="Device.LocalAgent.ControllerTrust.Role" local role="Device.LocalAgent.ControllerTrust.Role"
local idx=0 local idx=0
local role_name="$*" local role_name="$1"
local role_def_file
role_def_file=$(uci -q get obuspa.global.role_file 2>/dev/null)
case "${role_name}" in case "${role_name}" in
'full_access') 'full_access')
idx=1; idx=1;
@@ -493,9 +499,9 @@ get_role_index() {
*) *)
local ji=0 local ji=0
ji=$(check_json_load) check_json_load
if [ "${ji}" -eq 0 ]; then if [ "$?" -eq "0" ]; then
get_role_index_from_json "${role_name}" ji=$(get_role_index_from_json "${role_name}" "${role_def_file}")
fi fi
idx=$(( ji + 2 )) # Add predefined roles idx=$(( ji + 2 )) # Add predefined roles
esac esac
@@ -672,8 +678,6 @@ configure_obuspa() {
validate_obuspa_section "global" validate_obuspa_section "global"
role_def_file="${role_file}"
if [ "${debug}" -eq 1 ]; then if [ "${debug}" -eq 1 ]; then
# Forward stdout of the command to logd # Forward stdout of the command to logd
procd_set_param stdout 1 procd_set_param stdout 1
@@ -699,20 +703,16 @@ configure_obuspa() {
if [ -n "${ifname}" ]; then if [ -n "${ifname}" ]; then
procd_set_param env USP_BOARD_IFNAME="${ifname}" procd_set_param env USP_BOARD_IFNAME="${ifname}"
# Set this variable for root user and obuspa -c tool fi
if [ -z "${ifname}" ] || ! grep -F -q "export USP_BOARD_IFNAME=${ifname}" "${PROFILE}"; then
if [ -f "${PROFILE}" ]; then if [ -f "${PROFILE}" ]; then
if grep -q "export USP_BOARD_IFNAME=${ifname}" ${PROFILE}; then sed -i "/export USP_BOARD_IFNAME/d" "${PROFILE}"
if grep -q "export USP_BOARD_IFNAME" ${PROFILE}; then
sed -i "g/export USP_BOARD_IFNAME/d" ${PROFILE}
fi
fi
fi fi
echo "export USP_BOARD_IFNAME=${ifname}" >> ${PROFILE}
else if [ -n "${ifname}" ]; then
if [ -f "$PROFILE" ]; then # Set this variable for root user and obuspa -c tool
if grep -q "export USP_BOARD_IFNAME" ${PROFILE}; then echo "export USP_BOARD_IFNAME=${ifname}" >> "${PROFILE}"
sed -i "g/export USP_BOARD_IFNAME/d" ${PROFILE}
fi
fi fi
fi fi

View File

@@ -1,6 +1,7 @@
{ {
"dmcaching_exclude": [ "dmcaching_exclude": [
"Device.DeviceInfo.ProcessStatus.Process.", "Device.DeviceInfo.ProcessStatus.Process.",
"Device.Hosts.Host." "Device.Hosts.Host.",
"Device.WiFi.DataElements."
] ]
} }

View File

@@ -5,14 +5,14 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=periodicstats PKG_NAME:=periodicstats
PKG_VERSION:=1.1.0 PKG_VERSION:=1.2.0
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=7426c7458f792cc66920c206d62869c5620f1400 PKG_SOURCE_VERSION:=6c68428405bc88a9990e855f911aecc86f07f4a8
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/periodicstats.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/periodicstats.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
@@ -20,13 +20,15 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/periodicstats define Package/periodicstats
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
TITLE:=Periodic Statistics Daemon TITLE:=Periodic Statistics Daemon
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libbbf_api DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c
endef endef
define Package/periodicstats/description define Package/periodicstats/description
@@ -35,7 +37,7 @@ endef
ifeq ($(LOCAL_DEV),1) ifeq ($(LOCAL_DEV),1)
define Build/Prepare define Build/Prepare
$(CP) -rf ./periodicstats/* $(PKG_BUILD_DIR)/ $(CP) -rf ~/git/periodicstats/* $(PKG_BUILD_DIR)/
endef endef
endif endif

View File

@@ -11,9 +11,12 @@ service_running() {
} }
start_service() { start_service() {
enable=$(uci -q get periodicstats.globals.enable) local enable
if [ "$(enable)" != "1" ]; then config_load periodicstats
config_get_bool enable globals enable 1
if [ "${enable}" -ne "1" ]; then
return 0; return 0;
fi fi
@@ -24,7 +27,7 @@ start_service() {
} }
service_triggers() { service_triggers() {
procd_add_reload_trigger periodicstats uspd procd_add_reload_trigger periodicstats
} }
reload_service() { reload_service() {

View File

@@ -1,36 +0,0 @@
#!/bin/sh /etc/rc.common
START=98
STOP=10
USE_PROCD=1
NAME=ponmngr
PROG="/usr/sbin/omcid start"
include /lib/pon
start_service() {
if [ -f "/etc/config/pon" ]; then
procd_open_instance $NAME
procd_set_param command ${PROG}
procd_set_param respawn
procd_close_instance
start_gpon
fi
}
boot() {
start
}
stop_service() {
service_stop ${PROG}
stop_gpon
}
reload_service() {
stop
start
}

25
ponmngr/files/etc/init.d/xpon Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/sh /etc/rc.common
START=19
STOP=10
USE_PROCD=1
. /lib/functions.sh
include /lib/xpon
start_service() {
if [ "$(uci -q get xpon.ani.enable)" == "1" ]; then
init_xpon
fi
}
stop_service() {
# stopping omcid does not bring down the pon link, which should happen
# if ANI is disabled or stopped (go to O1)
deinit_xpon
}
service_triggers() {
procd_add_reload_trigger "xpon"
}

View File

@@ -1,27 +0,0 @@
#!/bin/sh
basemac="$(db -q get hw.board.basemac | tr -d ':')"
if [ -s "/etc/config/pon" ]; then
if uci -q get pon.globals >/dev/null; then
# return if there is any valid content
exit
else
rm -f /etc/config/pon
fi
fi
touch /etc/config/pon
mac=''
if [ -z "$basemac" ]; then
mac="12345678"
else
# read last 8 characters of basemac without :
mac=${basemac: -8}
fi
uci set pon.globals=globals
uci set pon.globals.enabled="1"
uci set pon.globals.serial_number="BRCM$mac"
uci commit pon

View File

@@ -0,0 +1,17 @@
#!/bin/sh
if [ -s "/etc/config/xpon" ]; then
if uci -q get xpon.ani >/dev/null; then
# return if there is any valid content
exit
else
rm -f /etc/config/xpon
fi
fi
touch /etc/config/xpon
uci set xpon.ani=ani
uci set xpon.ani.enable="1"
uci commit xpon

View File

@@ -1,70 +0,0 @@
#!/bin/sh
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
configure_snpwd() {
local serial_no password
serial_no="$1"
password="$2"
# serial number comprises of 2 parts, vendor id and vendor specific, the vendor id is
# a string while the vendor specific is a hex, so split the 2 and set accordingly
local vendor_id vendor_specific
vendor_id=${serial_no:0:4}
vendor_specific=${serial_no: -8}
# attempt to conver vendor_id from string to hex
vendor_id=$(echo $vendor_id | hexdump -e '4/1 "%02X" "\n"')
vendor_id=${vendor_id:0:8}
bdmf_shell -c `cat /var/bdmf_sh_id` -cmd /b/configure gpon onu_sn={vendor_id=$vendor_id,vendor_specific=$vendor_specific}
if [ -n "$password" ]; then
password=$(echo $password | hexdump -n ${#password} -e '16/1 "%02X""\n"')
bdmf_shell -c `cat /var/bdmf_sh_id` -cmd /b/configure gpon password=$password
fi
}
configure_gpon() {
local enabled serial_no password
config_load pon
config_get enabled globals "enabled"
if [ "$enabled" == "0" ]; then
exit
fi
config_get serial_no globals "serial_number"
config_get password globals "password"
configure_snpwd $serial_no $password
}
start_gpon() {
if [ -n "$(which gponctl)" ]; then
configure_gpon
gponctl start
fi
}
stop_gpon() {
if [ -n "$(which gponctl)" ]; then
gponctl stop
fi
}
get_gpon_status() {
json_init
status="$(gponctl getstate)"
admin_status="$(echo $status | head -n1 | awk '{print $8;}')"
json_add_string "admin_status" "$admin_status"
op_status="$(echo $status | head -n1 | awk '{print $12;}')"
case $op_status in
NUMBER)
op_status="$(echo $status | head -n1 | awk '{print $13;}')"
;;
esac
op_status=${op_status:1:2}
json_add_string "operational_status" "$op_status"
json_dump
}

View File

@@ -0,0 +1,20 @@
#!/bin/sh
USE_PROCD=1
. /lib/functions.sh
init_xpon() {
procd_open_instance pon_msgd
procd_set_param command bcm_msgd -c gpon
procd_close_instance
procd_open_instance pon_daemon
procd_set_param command omcid start -n
procd_close_instance
}
deinit_xpon() {
gponctl stop
}

View File

@@ -1,19 +0,0 @@
#!/bin/sh
. /usr/share/libubox/jshn.sh
. /lib/functions.sh
include /lib/pon
case "$1" in
list)
echo '{ "status": {} }'
;;
call)
case "$2" in
status)
get_gpon_status
;;
esac
;;
esac

View File

@@ -4,8 +4,8 @@
IP_RULE="" IP_RULE=""
BR_RULE="" BR_RULE=""
BR6_RULE=""
POLICER_SKIP=0
POLICER_COUNT=0 POLICER_COUNT=0
INTF_NAME="" INTF_NAME=""
Q_COUNT=0 Q_COUNT=0
@@ -292,6 +292,7 @@ flush_chains() {
init_broute_rule() { init_broute_rule() {
BR_RULE="" BR_RULE=""
BR6_RULE=""
} }
broute_filter_on_src_if() { broute_filter_on_src_if() {
@@ -327,6 +328,82 @@ broute_filter_on_ether_type() {
BR_RULE="$BR_RULE --proto $1" BR_RULE="$BR_RULE --proto $1"
} }
broute_filter_on_ether_type6() {
BR6_RULE="$BR6_RULE --proto IPv6"
}
ebt_match_src_ip() {
BR_RULE="$BR_RULE --ip-src $1"
}
ebt_match_dst_ip() {
BR_RULE="$BR_RULE --ip-dst $1"
}
ebt_match_ipv6_src_ip() {
BR_RULE="$BR_RULE --ip6-src $1"
}
ebt_match_ipv6_dst_ip() {
BR_RULE="$BR_RULE --ip6-dst $1"
}
ebt_match_ip_src_port() {
BR_RULE="$BR_RULE --ip-source-port $1"
}
ebt_match_ip_dst_port() {
BR_RULE="$BR_RULE --ip-destination-port $1"
}
ebt_match_ipv6_src_port() {
#when ethertype is not configured by user then both proto rules of ipv4
#and ipv6 to be installed so update BR6_RULE string as well otherwise
#update BR_RULE only for installation of ipv6 proto rule only.
if [ ! -z "$BR6_RULE" ]; then
BR6_RULE="$BR6_RULE --ip6-source-port $1"
else
BR_RULE="$BR_RULE --ip6-source-port $1"
fi
}
ebt_match_ipv6_dst_port() {
#when ethertype is not configured by user then both proto rules of ipv4
#and ipv6 to be installed so update BR6_RULE string as well otherwise
#update BR_RULE only for installation of ipv6 proto rule only.
if [ ! -z "$BR6_RULE" ]; then
BR6_RULE="$BR6_RULE --ip6-destination-port $1"
else
BR_RULE="$BR_RULE --ip6-destination-port $1"
fi
}
ebt_match_ip_protocol() {
BR_RULE="$BR_RULE --ip-proto $1"
}
ebt_match_ipv6_protocol() {
#when ethertype is not configured by user then both proto rules of ipv4
#and ipv6 to be installed so update BR6_RULE string as well otherwise
#update BR_RULE only for installation of ipv6 proto rule only.
if [ ! -z "$BR6_RULE" ]; then
BR6_RULE="$BR6_RULE --ip6-proto $1"
else
BR_RULE="$BR_RULE --ip6-proto $1"
fi
}
ebt_match_ipv6_dscp() {
#when ethertype is not configured by user then both proto rules of ipv4
#and ipv6 to be installed so update BR6_RULE string as well otherwise
#update BR_RULE only for installation of ipv6 proto rule only.
if [ ! -z "$BR6_RULE" ]; then
BR6_RULE="$BR6_RULE --ip6-tclass $1"
else
BR_RULE="$BR_RULE --ip6-tclass $1"
fi
}
broute_filter_on_dscp() { broute_filter_on_dscp() {
# The broadcom option --ip-dscp-extend actually accepts tos # The broadcom option --ip-dscp-extend actually accepts tos
# and not dscp and that too in hex, hence, perform the conversion # and not dscp and that too in hex, hence, perform the conversion
@@ -353,11 +430,145 @@ broute_filter_on_vid() {
} }
broute_rule_set_traffic_class() { broute_rule_set_traffic_class() {
#when ethertype is not configured by user then both proto rules of ipv4
#and ipv6 to be installed so update BR6_RULE string as well otherwise
#update BR_RULE only for installation of ipv6 proto rule only.
BR_RULE="$BR_RULE -j mark --mark-or 0x$1 --mark-target ACCEPT" BR_RULE="$BR_RULE -j mark --mark-or 0x$1 --mark-target ACCEPT"
if [ ! -z "$BR6_RULE" ]; then
BR6_RULE="$BR6_RULE -j mark --mark-or 0x$1 --mark-target ACCEPT"
fi
} }
broute_append_rule() { broute_append_rule() {
#when ethertype is not configured by user then both proto rules of ipv4
#and ipv6 to be installed otherwise install ipv6 proto rule only.
echo "ebtables -t broute -A qos $BR_RULE" >> /tmp/qos/classify.ebtables echo "ebtables -t broute -A qos $BR_RULE" >> /tmp/qos/classify.ebtables
if [ -n "$BR6_RULE" ]; then
echo "ebtables -t broute -A qos $BR6_RULE" >> /tmp/qos/classify.ebtables
fi
}
set_ip_addr()
{
local cid=$1
local match_src_ip_func=$2
local match_dst_ip_func=$3
config_get src_ip "$cid" "src_ip"
config_get dst_ip "$cid" "dest_ip"
if [ ! -z "$src_ip" ]; then
$match_src_ip_func "$src_ip"
fi
if [ ! -z "$dst_ip" ]; then
$match_dst_ip_func "$dst_ip"
fi
}
set_ports()
{
local cid=$1
local match_src_port_func=$2
local match_dst_port_func=$3
local src_port=""
local dst_port=""
local src_port_range=""
local dst_port_range=""
config_get src_port "$cid" "src_port"
config_get dst_port "$cid" "dest_port"
config_get src_port_range "$cid" "src_port_range"
config_get dst_port_range "$cid" "dest_port_range"
if ! [ -z $src_port ] && ! [ -z $src_port_range ]; then
$match_src_port_func "$src_port:$src_port_range"
elif [ ! -z $src_port ]; then
$match_src_port_func $src_port
fi
if ! [ -z $dst_port ] && ! [ -z $dst_port_range ]; then
$match_dst_port_func "$dst_port:$dst_port_range"
elif [ ! -z $dst_port ]; then
$match_dst_port_func $dst_port
fi
}
protocol_string_to_num()
{
local value=-1
case "$1" in
*[0-9]*) value="$1"
;;
TCP|tcp) value=6
;;
UDP|udp) value=17
;;
ICMP|icmp) value=1
;;
ICMPv6|icmpv6) value=58
;;
IGMP|igmp) value=2
;;
SCTP|sctp) value=132
;;
*) value=-1
;;
esac
echo $value
}
broute_ipv4_rule_options()
{
local cid=$1
config_get protocol "$cid" "proto"
config_get dscp_filter "$cid" "dscp_filter"
set_ip_addr $cid ebt_match_src_ip ebt_match_dst_ip
if [ ! -z $dscp_filter ]; then
broute_filter_on_dscp "$dscp_filter"
fi
if [ ! -z $protocol ]; then
local proto_num=$(protocol_string_to_num "$protocol")
ebt_match_ip_protocol "$proto_num"
#port installation for protol tcp/udp/sctp
if [ $proto_num = "6" ] || [ $proto_num = "17" ] || [ $proto_num = "132" ] ; then
set_ports "$cid" ebt_match_ip_src_port ebt_match_ip_dst_port
fi
fi
}
broute_ipv6_rule_options()
{
local cid=$1
config_get protocol "$cid" "proto"
config_get dscp_filter "$cid" "dscp_filter"
set_ip_addr $cid ebt_match_ipv6_src_ip ebt_match_ipv6_dst_ip
if [ ! -z $dscp_filter ]; then
local tos_val
local tos_hex
tos_val=$(($dscp_filter<<2))
tos_hex=$(printf "%x" $tos_val)
ebt_match_ipv6_dscp "$tos_hex"
fi
if [ ! -z $protocol ]; then
local proto_num=$(protocol_string_to_num "$protocol")
ebt_match_ipv6_protocol "$proto_num"
#port installation for protol tcp/udp/sctp
if [ $proto_num = "6" ] || [ $proto_num = "17" ] || [ $proto_num = "132" ]; then
set_ports "$cid" ebt_match_ipv6_src_port ebt_match_ipv6_dst_port
fi
fi
} }
handle_ebtables_rules() { handle_ebtables_rules() {
@@ -365,6 +576,8 @@ handle_ebtables_rules() {
local is_l2_rule=0 local is_l2_rule=0
local src_dhcp_options="" local src_dhcp_options=""
local dst_dhcp_options="" local dst_dhcp_options=""
local protocol=""
local ip_version=""
init_broute_rule init_broute_rule
@@ -382,8 +595,9 @@ handle_ebtables_rules() {
config_get dst_clid "$sid" "dst_client_id" # dhcp option 61 config_get dst_clid "$sid" "dst_client_id" # dhcp option 61
config_get src_ucid "$sid" "src_user_class_id" # dhcp option 77 config_get src_ucid "$sid" "src_user_class_id" # dhcp option 77
config_get dst_ucid "$sid" "dst_user_class_id" # dhcp option 77 config_get dst_ucid "$sid" "dst_user_class_id" # dhcp option 77
config_get traffic_class "$sid" "traffic_class" config_get traffic_class "$sid" "traffic_class"
config_get protocol "$sid" "proto"
if [ -n "$src_if" ]; then if [ -n "$src_if" ]; then
for interf in $(db -q get hw.board.ethernetPortOrder); do for interf in $(db -q get hw.board.ethernetPortOrder); do
@@ -410,13 +624,6 @@ handle_ebtables_rules() {
is_l2_rule=1 is_l2_rule=1
fi fi
if [ -n "$dscp_filter" ]; then
# filter on ethertype and proto is same thing
broute_filter_on_ether_type IPv4
broute_filter_on_dscp $dscp_filter
is_l2_rule=1
fi
if [ -n "$eth_type" ]; then if [ -n "$eth_type" ]; then
broute_filter_on_ether_type $eth_type broute_filter_on_ether_type $eth_type
is_l2_rule=1 is_l2_rule=1
@@ -427,6 +634,47 @@ handle_ebtables_rules() {
is_l2_rule=1 is_l2_rule=1
fi fi
case $eth_type in
IPv4|IPV4|0800)
ip_version=4
;;
IPv6|IPV6|86DD)
ip_version=6
;;
*)
if [ -z "$eth_type" ]; then
case $src_ip$dest_ip in
*.*)
ip_version=4
broute_filter_on_ether_type "IPv4"
;;
*:*)
ip_version=6
broute_filter_on_ether_type "IPv6"
;;
*)
if [ -n "$protocol" ] || [ -n "$dscp_filter" ]; then
ip_version=1 #neither ether_type nor ip address used
#ethertype is not configured by user so install
#both proto ipv4 and ipv6 rule
BR6_RULE="$BR_RULE"
broute_filter_on_ether_type "IPv4"
broute_filter_on_ether_type6 "IPv6"
fi
esac
fi
esac
if [ $ip_version = "4" ] || [ $ip_version = "1" ]; then
broute_ipv4_rule_options "$sid"
is_l2_rule=1
fi
if [ $ip_version = "6" ] || [ $ip_version = "1" ]; then
broute_ipv6_rule_options "$sid"
is_l2_rule=1
fi
# first process options that will help figure our source mac address # first process options that will help figure our source mac address
# dhcp option for "vendor class id" # dhcp option for "vendor class id"
if [ -n "$src_vcid" ]; then if [ -n "$src_vcid" ]; then
@@ -757,12 +1005,7 @@ handle_policer_rules() {
return return
fi fi
# The policer object is not available on non BCM968* chips config_ingress_rate_limit $ifname $ingress_rate $in_burst_size
if [ $POLICER_SKIP -eq 1 ]; then
assign_policer_to_port $ifname $pindex
else
config_ingress_rate_limit $ifname $ingress_rate $in_burst_size
fi
} }
@@ -857,11 +1100,16 @@ pre_configure_queue() {
mkdir -p /tmp/qos/queue_stats/$intf mkdir -p /tmp/qos/queue_stats/$intf
touch /tmp/qos/queue_stats/$intf/q_idx touch /tmp/qos/queue_stats/$intf/q_idx
echo 0 > /tmp/qos/queue_stats/$intf/q_idx echo 0 > /tmp/qos/queue_stats/$intf/q_idx
# tm initialization pushing ahead of delcfg as
# porttminit bydefault configures all queue as SP configuration.
# that was causing WRR queue configuration failure.
tmctl porttminit --devtype 0 --if $intf --flag 0 --numqueues 8
i=0 i=0
for i in 0 1 2 3 4 5 6 7; do for i in 0 1 2 3 4 5 6 7; do
tmctl delqcfg --devtype 0 --if $intf --qid $i &>/dev/null tmctl delqcfg --devtype 0 --if $intf --qid $i &>/dev/null
done done
tmctl porttminit --devtype 0 --if $intf --flag 0 --numqueues 8
mkdir -p /tmp/qos/$intf mkdir -p /tmp/qos/$intf
touch /tmp/qos/$intf/q_order touch /tmp/qos/$intf/q_order
@@ -880,17 +1128,15 @@ configure_queue() {
configure_policer() { configure_policer() {
# The policer object is not available on non BCM968* chips, just clean up # The policer object is not available on non BCM968* chips, just clean up
# the old config if any and return # the old config if any and return
if [ $POLICER_SKIP -eq 0 ]; then for intf in $(db get hw.board.ethernetPortOrder); do
for intf in $(db get hw.board.ethernetPortOrder); do local unitport="$(get_port_number $intf)"
local unitport="$(get_port_number $intf)" local unit=$(echo $unitport | cut -d ' ' -f 1)
local unit=$(echo $unitport | cut -d ' ' -f 1) local port=$(echo $unitport | cut -d ' ' -f 2)
local port=$(echo $unitport | cut -d ' ' -f 2) # setting rate and burst size to 0 disables rate limiting
# setting rate and burst size to 0 disables rate limiting if [ $port != "" -a $unit != "" ]; then
if [ $port != "" -a $unit != "" ]; then ethswctl -c rxratectrl -n $unit -p $port -x 0 -y 0
ethswctl -c rxratectrl -n $unit -p $port -x 0 -y 0 fi
fi done
done
fi
# Delete policer # Delete policer
local i=0 local i=0
@@ -931,10 +1177,6 @@ reload_qos() {
local service_name="$1" local service_name="$1"
local cpu_model="$(cat /proc/socinfo | grep 'SoC Name' | cut -d':' -f2)" local cpu_model="$(cat /proc/socinfo | grep 'SoC Name' | cut -d':' -f2)"
case $cpu_model in
BCM68*|BCM6755) POLICER_SKIP=1 ;;
esac
if [ -z "$service_name" ]; then if [ -z "$service_name" ]; then
configure_qos configure_qos
elif [ "$service_name" == "shaper" ]; then elif [ "$service_name" == "shaper" ]; then

View File

@@ -1,21 +1,20 @@
# #
# Copyright (C) 2013-2020 iopsys # Copyright (C) 2013-2022 iopsys
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=questd PKG_NAME:=questd
PKG_VERSION:=5.2.3 PKG_VERSION:=5.2.4
PKG_SOURCE_VERSION:=cf54bd65ec821ac67f3aa1caeebcd3ea9aae07ad LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/questd PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/questd
PKG_SOURCE_VERSION:=2ca3ae0c29dcbbf01282f6118eb8d5e5bc9a1c45
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
@@ -23,8 +22,6 @@ PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk include $(INCLUDE_DIR)/cmake.mk
PKG_INSTALL:=
define Package/questd define Package/questd
CATEGORY:=Utilities CATEGORY:=Utilities
DEPENDS:=+libuci +libubox +ubus +libpthread DEPENDS:=+libuci +libubox +ubus +libpthread
@@ -36,6 +33,13 @@ define Package/questd/description
this information via ubus this information via ubus
endef endef
ifeq ($(LOCAL_DEV),1)
CMAKE_OPTIONS:=-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
define Build/Prepare
$(CP) -rf ~/git/code/questd/* $(PKG_BUILD_DIR)/
endef
endif
define Package/questd/install define Package/questd/install
$(CP) ./files/* $(1)/ $(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/sbin $(INSTALL_DIR) $(1)/sbin

View File

@@ -1,23 +1,22 @@
# #
# Copyright (C) 2018 iopsys # Copyright (C) 2018-2022 iopsys
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=rulengd PKG_NAME:=rulengd
PKG_VERSION:=1.2.6 PKG_VERSION:=1.2.7
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO=git PKG_SOURCE_PROTO=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/rulengd.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/rulengd.git
PKG_SOURCE_VERSION:=e323bebe85cd7fb4eeb6cee535188227bc9b81e3 PKG_SOURCE_VERSION:=1f247e1afc845f47348febffa55fe40d8b552737
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION} endif
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
@@ -35,6 +34,14 @@ define Package/rulengd/description
rulengd listens for events and executes speficied methods if the incoming event arguments contain speficied ones. rulengd listens for events and executes speficied methods if the incoming event arguments contain speficied ones.
endef endef
#CMAKE_OPTIONS:=-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/code/rulengd/* $(PKG_BUILD_DIR)/
endef
endif
define Package/rulengd/install define Package/rulengd/install
$(CP) ./files/* $(1)/ $(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/bin $(INSTALL_DIR) $(1)/usr/bin

View File

@@ -1,51 +0,0 @@
#
# Copyright (C) 2012-2014 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:=shflags
PKG_VERSION:=2012-06-11
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/kward/shflags.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=c12b30cebb92b49c5edb6df255c0952c65b4ddc6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=LGPL-2.1
include $(INCLUDE_DIR)/package.mk
define Package/shflags
SECTION:=libs
CATEGORY:=Libraries
TITLE:=shflags
DEPENDS:=+getopt
URL:=http://code.google.com/p/shflags/
MAINTAINER:=Luka Perkov <luka@openwrt.org>
endef
define Package/shflags/description
command-line flags module for Unix shell scripts
endef
define Build/Configure
endef
define Build/Compile
endef
define Build/Install
endef
define Package/shflags/install
$(INSTALL_DIR) $(1)/usr/share/shflags
$(CP) $(PKG_BUILD_DIR)/source/1.0/src/shflags $(1)/usr/share/shflags/shflags.sh
endef
$(eval $(call BuildPackage,shflags))

View File

@@ -1,763 +0,0 @@
--- a/source/1.0/src/shflags
+++ b/source/1.0/src/shflags
@@ -1,91 +1,10 @@
-# $Id$
-# vim:et:ft=sh:sts=2:sw=2
-#
-# Copyright 2008 Kate Ward. All Rights Reserved.
-# Released under the LGPL (GNU Lesser General Public License)
-#
-# shFlags -- Advanced command-line flag library for Unix shell scripts.
-# http://code.google.com/p/shflags/
-#
-# Author: kate.ward@forestent.com (Kate Ward)
-#
-# This module implements something like the google-gflags library available
-# from http://code.google.com/p/google-gflags/.
-#
-# FLAG TYPES: This is a list of the DEFINE_*'s that you can do. All flags take
-# a name, default value, help-string, and optional 'short' name (one-letter
-# name). Some flags have other arguments, which are described with the flag.
-#
-# DEFINE_string: takes any input, and intreprets it as a string.
-#
-# DEFINE_boolean: typically does not take any argument: say --myflag to set
-# FLAGS_myflag to true, or --nomyflag to set FLAGS_myflag to false.
-# Alternately, you can say
-# --myflag=true or --myflag=t or --myflag=0 or
-# --myflag=false or --myflag=f or --myflag=1
-# Passing an option has the same affect as passing the option once.
-#
-# DEFINE_float: takes an input and intreprets it as a floating point number. As
-# shell does not support floats per-se, the input is merely validated as
-# being a valid floating point value.
-#
-# DEFINE_integer: takes an input and intreprets it as an integer.
-#
-# SPECIAL FLAGS: There are a few flags that have special meaning:
-# --help (or -?) prints a list of all the flags in a human-readable fashion
-# --flagfile=foo read flags from foo. (not implemented yet)
-# -- as in getopt(), terminates flag-processing
-#
-# EXAMPLE USAGE:
-#
-# -- begin hello.sh --
-# #! /bin/sh
-# . ./shflags
-# DEFINE_string name 'world' "somebody's name" n
-# FLAGS "$@" || exit $?
-# eval set -- "${FLAGS_ARGV}"
-# echo "Hello, ${FLAGS_name}."
-# -- end hello.sh --
-#
-# $ ./hello.sh -n Kate
-# Hello, Kate.
-#
-# NOTE: Not all systems include a getopt version that supports long flags. On
-# these systems, only short flags are recognized.
-
-#==============================================================================
-# shFlags
-#
-# Shared attributes:
-# flags_error: last error message
-# flags_return: last return value
-#
-# __flags_longNames: list of long names for all flags
-# __flags_shortNames: list of short names for all flags
-# __flags_boolNames: list of boolean flag names
-#
-# __flags_opts: options parsed by getopt
-#
-# Per-flag attributes:
-# FLAGS_<flag_name>: contains value of flag named 'flag_name'
-# __flags_<flag_name>_default: the default flag value
-# __flags_<flag_name>_help: the flag help string
-# __flags_<flag_name>_short: the flag short name
-# __flags_<flag_name>_type: the flag type
-#
-# Notes:
-# - lists of strings are space separated, and a null value is the '~' char.
-
-# return if FLAGS already loaded
[ -n "${FLAGS_VERSION:-}" ] && return 0
FLAGS_VERSION='1.0.3'
-# return values
FLAGS_TRUE=0
FLAGS_FALSE=1
FLAGS_ERROR=2
-# reserved flag names
FLAGS_RESERVED='ARGC ARGV ERROR FALSE HELP PARENT RESERVED TRUE VERSION'
_flags_debug() { echo "flags:DEBUG $@" >&2; }
@@ -93,7 +12,6 @@ _flags_warn() { echo "flags:WARN $@" >&2
_flags_error() { echo "flags:ERROR $@" >&2; }
_flags_fatal() { echo "flags:FATAL $@" >&2; }
-# specific shell checks
if [ -n "${ZSH_VERSION:-}" ]; then
setopt |grep "^shwordsplit$" >/dev/null
if [ $? -ne ${FLAGS_TRUE} ]; then
@@ -107,20 +25,15 @@ if [ -n "${ZSH_VERSION:-}" ]; then
fi
fi
-#
-# constants
-#
-# getopt version
__FLAGS_GETOPT_VERS_STD=0
__FLAGS_GETOPT_VERS_ENH=1
__FLAGS_GETOPT_VERS_BSD=2
getopt >/dev/null 2>&1
case $? in
- 0) __FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_STD} ;; # bsd getopt
+ 0) __FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_STD} ;;
2)
- # TODO(kward): look into '-T' option to test the internal getopt() version
if [ "`getopt --version`" = '-- ' ]; then
__FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_STD}
else
@@ -133,82 +46,49 @@ case $? in
;;
esac
-# getopt optstring lengths
__FLAGS_OPTSTR_SHORT=0
__FLAGS_OPTSTR_LONG=1
__FLAGS_NULL='~'
-# flag info strings
__FLAGS_INFO_DEFAULT='default'
__FLAGS_INFO_HELP='help'
__FLAGS_INFO_SHORT='short'
__FLAGS_INFO_TYPE='type'
-# flag lengths
__FLAGS_LEN_SHORT=0
__FLAGS_LEN_LONG=1
-# flag types
__FLAGS_TYPE_NONE=0
__FLAGS_TYPE_BOOLEAN=1
__FLAGS_TYPE_FLOAT=2
__FLAGS_TYPE_INTEGER=3
__FLAGS_TYPE_STRING=4
-# set the constants readonly
__flags_constants=`set |awk -F= '/^FLAGS_/ || /^__FLAGS_/ {print $1}'`
for __flags_const in ${__flags_constants}; do
- # skip certain flags
case ${__flags_const} in
FLAGS_HELP) continue ;;
FLAGS_PARENT) continue ;;
esac
- # set flag readonly
if [ -z "${ZSH_VERSION:-}" ]; then
readonly ${__flags_const}
- else # handle zsh
+ else
case ${ZSH_VERSION} in
[123].*) readonly ${__flags_const} ;;
- *) readonly -g ${__flags_const} ;; # declare readonly constants globally
+ *) readonly -g ${__flags_const} ;;
esac
fi
done
unset __flags_const __flags_constants
-#
-# internal variables
-#
-
-__flags_boolNames=' ' # space separated list of boolean flag names
-__flags_longNames=' ' # space separated list of long flag names
-__flags_shortNames=' ' # space separated list of short flag names
-
-__flags_columns='' # screen width in columns
-__flags_opts='' # temporary storage for parsed getopt flags
-
-#------------------------------------------------------------------------------
-# private functions
-#
-
-# Define a flag.
-#
-# Calling this function will define the following info variables for the
-# specified flag:
-# FLAGS_flagname - the name for this flag (based upon the long flag name)
-# __flags_<flag_name>_default - the default value
-# __flags_flagname_help - the help string
-# __flags_flagname_short - the single letter alias
-# __flags_flagname_type - the type of flag (one of __FLAGS_TYPE_*)
-#
-# Args:
-# _flags__type: integer: internal type of flag (__FLAGS_TYPE_*)
-# _flags__name: string: long flag name
-# _flags__default: default flag value
-# _flags__help: string: help string
-# _flags__short: string: (optional) short flag name
-# Returns:
-# integer: success of operation, or error
+
+__flags_boolNames=' '
+__flags_longNames=' '
+__flags_shortNames=' '
+__flags_columns=''
+__flags_opts=''
+
_flags_define()
{
if [ $# -lt 4 ]; then
@@ -226,16 +106,13 @@ _flags_define()
_flags_return_=${FLAGS_TRUE}
- # TODO(kward): check for validity of the flag name (e.g. dashes)
- # check whether the flag name is reserved
echo " ${FLAGS_RESERVED} " |grep " ${_flags_name_} " >/dev/null
if [ $? -eq 0 ]; then
flags_error="flag name (${_flags_name_}) is reserved"
_flags_return_=${FLAGS_ERROR}
fi
- # require short option for getopt that don't support long options
if [ ${_flags_return_} -eq ${FLAGS_TRUE} \
-a ${__FLAGS_GETOPT_VERS} -ne ${__FLAGS_GETOPT_VERS_ENH} \
-a "${_flags_short_}" = "${__FLAGS_NULL}" ]
@@ -244,7 +121,6 @@ _flags_define()
_flags_return_=${FLAGS_ERROR}
fi
- # check for existing long name definition
if [ ${_flags_return_} -eq ${FLAGS_TRUE} ]; then
if _flags_itemInList "${_flags_name_}" \
${__flags_longNames} ${__flags_boolNames}
@@ -255,7 +131,6 @@ _flags_define()
fi
fi
- # check for existing short name definition
if [ ${_flags_return_} -eq ${FLAGS_TRUE} \
-a "${_flags_short_}" != "${__FLAGS_NULL}" ]
then
@@ -266,9 +141,6 @@ _flags_define()
fi
fi
- # handle default value. note, on several occasions the 'if' portion of an
- # if/then/else contains just a ':' which does nothing. a binary reversal via
- # '!' is not done because it does not work on all shells.
if [ ${_flags_return_} -eq ${FLAGS_TRUE} ]; then
case ${_flags_type_} in
${__FLAGS_TYPE_BOOLEAN})
@@ -301,7 +173,7 @@ _flags_define()
fi
;;
- ${__FLAGS_TYPE_STRING}) ;; # everything in shell is a valid string
+ ${__FLAGS_TYPE_STRING}) ;;
*)
flags_error="unrecognized flag type '${_flags_type_}'"
@@ -311,7 +183,6 @@ _flags_define()
fi
if [ ${_flags_return_} -eq ${FLAGS_TRUE} ]; then
- # store flag information
eval "FLAGS_${_flags_name_}='${_flags_default_}'"
eval "__flags_${_flags_name_}_${__FLAGS_INFO_TYPE}=${_flags_type_}"
eval "__flags_${_flags_name_}_${__FLAGS_INFO_DEFAULT}=\
@@ -319,7 +190,6 @@ _flags_define()
eval "__flags_${_flags_name_}_${__FLAGS_INFO_HELP}=\"${_flags_help_}\""
eval "__flags_${_flags_name_}_${__FLAGS_INFO_SHORT}='${_flags_short_}'"
- # append flag name(s) to list of names
__flags_longNames="${__flags_longNames}${_flags_name_} "
__flags_shortNames="${__flags_shortNames}${_flags_short_} "
[ ${_flags_type_} -eq ${__FLAGS_TYPE_BOOLEAN} ] && \
@@ -333,17 +203,6 @@ _flags_define()
return ${flags_return}
}
-# Return valid getopt options using currently defined list of long options.
-#
-# This function builds a proper getopt option string for short (and long)
-# options, using the current list of long options for reference.
-#
-# Args:
-# _flags_optStr: integer: option string type (__FLAGS_OPTSTR_*)
-# Output:
-# string: generated option string for getopt
-# Returns:
-# boolean: success of operation (always returns True)
_flags_genOptStr()
{
_flags_optStrType_=$1
@@ -358,7 +217,6 @@ _flags_genOptStr()
${_flags_flag_} ${__FLAGS_INFO_SHORT}`
if [ "${_flags_shortName_}" != "${__FLAGS_NULL}" ]; then
_flags_opts_="${_flags_opts_}${_flags_shortName_}"
- # getopt needs a trailing ':' to indicate a required argument
[ ${_flags_type_} -ne ${__FLAGS_TYPE_BOOLEAN} ] && \
_flags_opts_="${_flags_opts_}:"
fi
@@ -366,7 +224,6 @@ _flags_genOptStr()
${__FLAGS_OPTSTR_LONG})
_flags_opts_="${_flags_opts_:+${_flags_opts_},}${_flags_flag_}"
- # getopt needs a trailing ':' to indicate a required argument
[ ${_flags_type_} -ne ${__FLAGS_TYPE_BOOLEAN} ] && \
_flags_opts_="${_flags_opts_}:"
;;
@@ -379,15 +236,6 @@ _flags_genOptStr()
return ${FLAGS_TRUE}
}
-# Returns flag details based on a flag name and flag info.
-#
-# Args:
-# string: long flag name
-# string: flag info (see the _flags_define function for valid info types)
-# Output:
-# string: value of dereferenced flag variable
-# Returns:
-# integer: one of FLAGS_{TRUE|FALSE|ERROR}
_flags_getFlagInfo()
{
_flags_name_=$1
@@ -399,13 +247,6 @@ _flags_getFlagInfo()
if [ -n "${_flags_value_}" ]; then
flags_return=${FLAGS_TRUE}
else
- # see if the _flags_name_ variable is a string as strings can be empty...
- # note: the DRY principle would say to have this function call itself for
- # the next three lines, but doing so results in an infinite loop as an
- # invalid _flags_name_ will also not have the associated _type variable.
- # Because it doesn't (it will evaluate to an empty string) the logic will
- # try to find the _type variable of the _type variable, and so on. Not so
- # good ;-)
_flags_typeVar_="__flags_${_flags_name_}_${__FLAGS_INFO_TYPE}"
_flags_strToEval_="_flags_type_=\"\${${_flags_typeVar_}:-}\""
eval "${_flags_strToEval_}"
@@ -424,15 +265,6 @@ _flags_getFlagInfo()
return ${flags_return}
}
-# check for presense of item in a list. passed a string (e.g. 'abc'), this
-# function will determine if the string is present in the list of strings (e.g.
-# ' foo bar abc ').
-#
-# Args:
-# _flags__str: string: string to search for in a list of strings
-# unnamed: list: list of strings
-# Returns:
-# boolean: true if item is in the list
_flags_itemInList()
{
_flags_str_=$1
@@ -449,34 +281,22 @@ _flags_itemInList()
return ${flags_return}
}
-# Returns the width of the current screen.
-#
-# Output:
-# integer: width in columns of the current screen.
_flags_columns()
{
if [ -z "${__flags_columns}" ]; then
- # determine the value and store it
if eval stty size >/dev/null 2>&1; then
- # stty size worked :-)
set -- `stty size`
__flags_columns=$2
elif eval tput cols >/dev/null 2>&1; then
set -- `tput cols`
__flags_columns=$1
else
- __flags_columns=80 # default terminal width
+ __flags_columns=80
fi
fi
echo ${__flags_columns}
}
-# Validate a boolean.
-#
-# Args:
-# _flags__bool: boolean: value to validate
-# Returns:
-# bool: true if the value is a valid boolean
_flags_validateBoolean()
{
_flags_bool_=$1
@@ -492,12 +312,6 @@ _flags_validateBoolean()
return ${flags_return}
}
-# Validate a float.
-#
-# Args:
-# _flags__float: float: value to validate
-# Returns:
-# bool: true if the value is a valid float
_flags_validateFloat()
{
_flags_float_=$1
@@ -507,10 +321,10 @@ _flags_validateFloat()
else
flags_return=${FLAGS_TRUE}
case ${_flags_float_} in
- -*) # negative floats
+ -*)
_flags_test_=`expr "${_flags_float_}" : '\(-[0-9][0-9]*\.[0-9][0-9]*\)'`
;;
- *) # positive floats
+ *)
_flags_test_=`expr "${_flags_float_}" : '\([0-9][0-9]*\.[0-9][0-9]*\)'`
;;
esac
@@ -521,22 +335,16 @@ _flags_validateFloat()
return ${flags_return}
}
-# Validate an integer.
-#
-# Args:
-# _flags__integer: interger: value to validate
-# Returns:
-# bool: true if the value is a valid integer
_flags_validateInteger()
{
_flags_int_=$1
flags_return=${FLAGS_TRUE}
case ${_flags_int_} in
- -*) # negative ints
+ -*)
_flags_test_=`expr "${_flags_int_}" : '\(-[0-9][0-9]*\)'`
;;
- *) # positive ints
+ *)
_flags_test_=`expr "${_flags_int_}" : '\([0-9][0-9]*\)'`
;;
esac
@@ -546,23 +354,12 @@ _flags_validateInteger()
return ${flags_return}
}
-# Parse command-line options using the standard getopt.
-#
-# Note: the flag options are passed around in the global __flags_opts so that
-# the formatting is not lost due to shell parsing and such.
-#
-# Args:
-# @: varies: command-line options to parse
-# Returns:
-# integer: a FLAGS success condition
_flags_getoptStandard()
{
flags_return=${FLAGS_TRUE}
_flags_shortOpts_=`_flags_genOptStr ${__FLAGS_OPTSTR_SHORT}`
- # check for spaces in passed options
for _flags_opt_ in "$@"; do
- # note: the silliness with the x's is purely for ksh93 on Ubuntu 6.06
_flags_match_=`echo "x${_flags_opt_}x" |sed 's/ //g'`
if [ "${_flags_match_}" != "x${_flags_opt_}x" ]; then
flags_error='the available getopt does not support spaces in options'
@@ -585,15 +382,6 @@ _flags_getoptStandard()
return ${flags_return}
}
-# Parse command-line options using the enhanced getopt.
-#
-# Note: the flag options are passed around in the global __flags_opts so that
-# the formatting is not lost due to shell parsing and such.
-#
-# Args:
-# @: varies: command-line options to parse
-# Returns:
-# integer: a FLAGS success condition
_flags_getoptEnhanced()
{
flags_return=${FLAGS_TRUE}
@@ -617,17 +405,6 @@ _flags_getoptEnhanced()
return ${flags_return}
}
-# Dynamically parse a getopt result and set appropriate variables.
-#
-# This function does the actual conversion of getopt output and runs it through
-# the standard case structure for parsing. The case structure is actually quite
-# dynamic to support any number of flags.
-#
-# Args:
-# argc: int: original command-line argument count
-# @: varies: output from getopt parsing
-# Returns:
-# integer: a FLAGS success condition
_flags_parseGetopt()
{
_flags_argc_=$1
@@ -638,35 +415,26 @@ _flags_parseGetopt()
if [ ${__FLAGS_GETOPT_VERS} -ne ${__FLAGS_GETOPT_VERS_ENH} ]; then
set -- $@
else
- # note the quotes around the `$@' -- they are essential!
eval set -- "$@"
fi
- # provide user with number of arguments to shift by later
- # NOTE: the FLAGS_ARGC variable is obsolete as of 1.0.3 because it does not
- # properly give user access to non-flag arguments mixed in between flag
- # arguments. Its usage was replaced by FLAGS_ARGV, and it is being kept only
- # for backwards compatibility reasons.
FLAGS_ARGC=`expr $# - 1 - ${_flags_argc_}`
- # handle options. note options with values must do an additional shift
while true; do
_flags_opt_=$1
_flags_arg_=${2:-}
_flags_type_=${__FLAGS_TYPE_NONE}
_flags_name_=''
- # determine long flag name
case "${_flags_opt_}" in
- --) shift; break ;; # discontinue option parsing
+ --) shift; break ;;
- --*) # long option
+ --*)
_flags_opt_=`expr "${_flags_opt_}" : '--\(.*\)'`
_flags_len_=${__FLAGS_LEN_LONG}
if _flags_itemInList "${_flags_opt_}" ${__flags_longNames}; then
_flags_name_=${_flags_opt_}
else
- # check for negated long boolean version
if _flags_itemInList "${_flags_opt_}" ${__flags_boolNames}; then
_flags_name_=`expr "${_flags_opt_}" : 'no\(.*\)'`
_flags_type_=${__FLAGS_TYPE_BOOLEAN}
@@ -675,12 +443,10 @@ _flags_parseGetopt()
fi
;;
- -*) # short option
+ -*)
_flags_opt_=`expr "${_flags_opt_}" : '-\(.*\)'`
_flags_len_=${__FLAGS_LEN_SHORT}
if _flags_itemInList "${_flags_opt_}" ${__flags_shortNames}; then
- # yes. match short name to long name. note purposeful off-by-one
- # (too high) with awk calculations.
_flags_pos_=`echo "${__flags_shortNames}" \
|awk 'BEGIN{RS=" ";rn=0}$0==e{rn=NR}END{print rn}' \
e=${_flags_opt_}`
@@ -690,14 +456,12 @@ _flags_parseGetopt()
;;
esac
- # die if the flag was unrecognized
if [ -z "${_flags_name_}" ]; then
flags_error="unrecognized option (${_flags_opt_})"
flags_return=${FLAGS_ERROR}
break
fi
- # set new flag value
[ ${_flags_type_} -eq ${__FLAGS_TYPE_NONE} ] && \
_flags_type_=`_flags_getFlagInfo \
"${_flags_name_}" ${__FLAGS_INFO_TYPE}`
@@ -746,7 +510,6 @@ _flags_parseGetopt()
;;
esac
- # handle special case help flag
if [ "${_flags_name_}" = 'help' ]; then
if [ ${FLAGS_help} -eq ${FLAGS_TRUE} ]; then
flags_help
@@ -756,12 +519,10 @@ _flags_parseGetopt()
fi
fi
- # shift the option and non-boolean arguements out.
shift
[ ${_flags_type_} != ${__FLAGS_TYPE_BOOLEAN} ] && shift
done
- # give user back non-flag arguments
FLAGS_ARGV=''
while [ $# -gt 0 ]; do
FLAGS_ARGV="${FLAGS_ARGV:+${FLAGS_ARGV} }'$1'"
@@ -773,43 +534,18 @@ _flags_parseGetopt()
return ${flags_return}
}
-#------------------------------------------------------------------------------
-# public functions
-#
-
-# A basic boolean flag. Boolean flags do not take any arguments, and their
-# value is either 1 (false) or 0 (true). For long flags, the false value is
-# specified on the command line by prepending the word 'no'. With short flags,
-# the presense of the flag toggles the current value between true and false.
-# Specifying a short boolean flag twice on the command results in returning the
-# value back to the default value.
-#
-# A default value is required for boolean flags.
-#
-# For example, lets say a Boolean flag was created whose long name was 'update'
-# and whose short name was 'x', and the default value was 'false'. This flag
-# could be explicitly set to 'true' with '--update' or by '-x', and it could be
-# explicitly set to 'false' with '--noupdate'.
+
DEFINE_boolean() { _flags_define ${__FLAGS_TYPE_BOOLEAN} "$@"; }
-# Other basic flags.
DEFINE_float() { _flags_define ${__FLAGS_TYPE_FLOAT} "$@"; }
DEFINE_integer() { _flags_define ${__FLAGS_TYPE_INTEGER} "$@"; }
DEFINE_string() { _flags_define ${__FLAGS_TYPE_STRING} "$@"; }
-# Parse the flags.
-#
-# Args:
-# unnamed: list: command-line flags to parse
-# Returns:
-# integer: success of operation, or error
FLAGS()
{
- # define a standard 'help' flag if one isn't already defined
[ -z "${__flags_help_type:-}" ] && \
DEFINE_boolean 'help' false 'show this help' 'h'
- # parse options
if [ $# -gt 0 ]; then
if [ ${__FLAGS_GETOPT_VERS} -ne ${__FLAGS_GETOPT_VERS_ENH} ]; then
_flags_getoptStandard "$@"
@@ -818,7 +554,6 @@ FLAGS()
fi
flags_return=$?
else
- # nothing passed; won't bother running getopt
__flags_opts='--'
flags_return=${FLAGS_TRUE}
fi
@@ -832,23 +567,11 @@ FLAGS()
return ${flags_return}
}
-# This is a helper function for determining the `getopt` version for platforms
-# where the detection isn't working. It simply outputs debug information that
-# can be included in a bug report.
-#
-# Args:
-# none
-# Output:
-# debug info that can be included in a bug report
-# Returns:
-# nothing
flags_getoptInfo()
{
- # platform info
_flags_debug "uname -a: `uname -a`"
_flags_debug "PATH: ${PATH}"
- # shell info
if [ -n "${BASH_VERSION:-}" ]; then
_flags_debug 'shell: bash'
_flags_debug "BASH_VERSION: ${BASH_VERSION}"
@@ -857,7 +580,6 @@ flags_getoptInfo()
_flags_debug "ZSH_VERSION: ${ZSH_VERSION}"
fi
- # getopt info
getopt >/dev/null
_flags_getoptReturn=$?
_flags_debug "getopt return: ${_flags_getoptReturn}"
@@ -866,39 +588,16 @@ flags_getoptInfo()
unset _flags_getoptReturn
}
-# Returns whether the detected getopt version is the enhanced version.
-#
-# Args:
-# none
-# Output:
-# none
-# Returns:
-# bool: true if getopt is the enhanced version
flags_getoptIsEnh()
{
test ${__FLAGS_GETOPT_VERS} -eq ${__FLAGS_GETOPT_VERS_ENH}
}
-# Returns whether the detected getopt version is the standard version.
-#
-# Args:
-# none
-# Returns:
-# bool: true if getopt is the standard version
flags_getoptIsStd()
{
test ${__FLAGS_GETOPT_VERS} -eq ${__FLAGS_GETOPT_VERS_STD}
}
-# This is effectively a 'usage()' function. It prints usage information and
-# exits the program with ${FLAGS_FALSE} if it is ever found in the command line
-# arguments. Note this function can be overridden so other apps can define
-# their own --help flag, replacing this one, if they want.
-#
-# Args:
-# none
-# Returns:
-# integer: success of operation (always returns true)
flags_help()
{
if [ -n "${FLAGS_HELP:-}" ]; then
@@ -953,19 +652,14 @@ flags_help()
echo "${flags_helpStr_}" >&2
else
echo " ${flags_flagStr_} ${flags_help_}" >&2
- # note: the silliness with the x's is purely for ksh93 on Ubuntu 6.06
- # because it doesn't like empty strings when used in this manner.
flags_emptyStr_="`echo \"x${flags_flagStr_}x\" \
|awk '{printf "%"length($0)-2"s", ""}'`"
flags_helpStr_=" ${flags_emptyStr_} ${flags_defaultStr_}"
flags_helpStrLen_=`expr "${flags_helpStr_}" : '.*'`
if [ ${__FLAGS_GETOPT_VERS} -eq ${__FLAGS_GETOPT_VERS_STD} \
-o ${flags_helpStrLen_} -lt ${flags_columns_} ]; then
- # indented to match help string
echo "${flags_helpStr_}" >&2
else
- # indented four from left to allow for longer defaults as long flag
- # names might be used too, making things too long
echo " ${flags_defaultStr_}" >&2
fi
fi
@@ -978,12 +672,6 @@ flags_help()
return ${FLAGS_TRUE}
}
-# Reset shflags back to an uninitialized state.
-#
-# Args:
-# none
-# Returns:
-# nothing
flags_reset()
{
for flags_name_ in ${__flags_longNames}; do
@@ -1000,7 +688,6 @@ flags_reset()
eval ${flags_strToEval_}
done
- # reset internal variables
__flags_boolNames=' '
__flags_longNames=' '
__flags_shortNames=' '

View File

@@ -1,16 +0,0 @@
if PACKAGE_stunc
choice
prompt "Select SSL utility"
default STUNC_USE_WOLFSSL
config STUNC_USE_WOLFSSL
bool "Use WolfSSL for ssl utilities"
select CONFIG_PACKAGE_libwolfssl
config STUNC_USE_OPENSSL
bool "Use OpenSSL for ssl utilities"
select CONFIG_PACKAGE_libopenssl
endchoice
endif

View File

@@ -1,5 +1,5 @@
# #
# Copyright (C) 2020 iopsys Software Solutions AB # Copyright (C) 2020-2022 IOPSYS Software Solutions AB
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@@ -8,49 +8,77 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=stunc PKG_NAME:=stunc
PKG_VERSION:=1.1.3 PKG_RELEASE:=1
PKG_VERSION:=1.1.11
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=c5de804fb976d17fd9a7ed7967d760d0c7e4c224
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/stunc.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/stunc.git
PKG_SOURCE_VERSION:=5afef8d2040fa31a73e6320c8a65b891a88518de
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME) define Package/stunc/default
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=BBF STUN Client TITLE:=BBF STUN Client
DEPENDS:=+libubus +libuci +libubox +libjson-c +libwolfssl +libblobmsg-json +libbbf_api +libopenssl DEPENDS:=+libubus +libuci +libubox +libjson-c +libblobmsg-json
MENU := 1
endef endef
define Package/$(PKG_NAME)/description define Package/stunc-mbedtls
BBF STUN Client $(Package/stunc/default)
TITLE += (mbedtls)
DEPENDS += +PACKAGE_stunc-mbedtls:libmbedtls
VARIANT:=mbedtls
DEFAULT_VARIANT:=1
endef endef
define Package/$(PKG_NAME)/config define Package/stunc-openssl
source "$(SOURCE)/Config.in" $(Package/stunc/default)
TITLE += (openssl)
DEPENDS += +PACKAGE_stunc-openssl:libopenssl
CONFLICTS := stunc-mbedtls
VARIANT:=openssl
endef
define Package/stunc-wolfssl
$(Package/stunc/default)
TITLE += (wolfssl)
DEPENDS += +PACKAGE_stunc-wolfssl:libwolfssl
CONFLICTS := stunc-mbedtls stunc-openssl
VARIANT:=wolfssl
endef endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-Wall -Werror -Wall -Werror
ifeq ($(CONFIG_STUNC_USE_WOLFSSL), y) ifeq ($(BUILD_VARIANT),wolfssl)
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
TARGET_LDFLAGS += -lwolfssl MAKE_FLAGS += \
USE_WOLFSSL="yes"
endif
ifeq ($(BUILD_VARIANT),mbedtls)
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/mbedtls
MAKE_FLAGS += \
USE_MBEDTLS="yes"
endif
ifeq ($(BUILD_VARIANT),openssl)
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
MAKE_FLAGS += \
USE_OPENSSL="yes"
endif endif
ifeq ($(LOCAL_DEV),1) ifeq ($(LOCAL_DEV),1)
@@ -59,7 +87,7 @@ define Build/Prepare
endef endef
endif endif
define Package/$(PKG_NAME)/install define Package/stunc/default/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
@@ -70,4 +98,10 @@ define Package/$(PKG_NAME)/install
$(INSTALL_DATA) ./files/etc/config/stunc $(1)/etc/config/stunc $(INSTALL_DATA) ./files/etc/config/stunc $(1)/etc/config/stunc
endef endef
$(eval $(call BuildPackage,$(PKG_NAME))) Package/stunc-openssl/install = $(Package/stunc/default/install)
Package/stunc-wolfssl/install = $(Package/stunc/default/install)
Package/stunc-mbedtls/install = $(Package/stunc/default/install)
$(eval $(call BuildPackage,stunc-openssl))
$(eval $(call BuildPackage,stunc-wolfssl))
$(eval $(call BuildPackage,stunc-mbedtls))

View File

@@ -8,5 +8,5 @@ config stunc 'stunc'
option min_keepalive '30' option min_keepalive '30'
option max_keepalive '3600' option max_keepalive '3600'
# option client_port 7547 # option client_port 7547
option log_level '0' option log_level '1'

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=sulu PKG_NAME:=sulu
PKG_VERSION:=1.0.0 PKG_VERSION:=1.0.12
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu.git PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu.git
PKG_SOURCE_VERSION:=ab01473ad17974714f7cc91fcb345746fb7ddd6d PKG_SOURCE_VERSION:=fc82a32ab3cdcb18dc3aa7b907c62d8bed29b4ff
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz

View File

@@ -6,18 +6,22 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=swmodd PKG_NAME:=swmodd
PKG_VERSION:=2.1.2 PKG_VERSION:=2.1.5
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=e484557ea7ede6d8ff439081deebd763d4952851 PKG_SOURCE_VERSION:=2f953ea76b5779a73a540777dfb450982802e4f8
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/swmodd.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/swmodd.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DEPENDS:=bbf
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@@ -26,7 +30,7 @@ define Package/swmodd
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:= Software Modules Daemon TITLE:= Software Modules Daemon
DEPENDS:=+libuci +libubox +ubus +libuuid +libbbf_api +opkg +libcurl \ DEPENDS:=+libuci +libubox +ubus +libuuid +opkg +libcurl \
+PACKAGE_liblxc:liblxc +PACKAGE_liblxc:cgroupfs-mount \ +PACKAGE_liblxc:liblxc +PACKAGE_liblxc:cgroupfs-mount \
+@BUSYBOX_CONFIG_BUSYBOX +@BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT +@BUSYBOX_CONFIG_BUSYBOX +@BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT
endef endef

View File

@@ -1,7 +1,7 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
START=94 START=99
STOP=10 STOP=01
USE_PROCD=1 USE_PROCD=1
PROG=/usr/sbin/swmodd PROG=/usr/sbin/swmodd

View File

@@ -1,28 +1,25 @@
# #
# Copyright (C) 2020 iopsys Software Solutions AB # Copyright (C) 2020-2022 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 include $(TOPDIR)/rules.mk
PKG_NAME:=twamp PKG_NAME:=twamp
PKG_VERSION:=1.1.1 PKG_VERSION:=1.2.0
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/twamp.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/twamp-light.git
PKG_SOURCE_VERSION:=a0f7355afea41dbafd443d119cb394e038e70dc6 PKG_SOURCE_VERSION:=4dfc8609fb0cefaaf9e86b559b1e10488117cf07
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@@ -30,12 +27,12 @@ define Package/$(PKG_NAME)
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=BBF TWAMP/TWAMP Light feature TITLE:=TWAMP Light Client(TR-390)
DEPENDS:=+libuci +libbbf_api +ubox +libubus DEPENDS:=+libuci +ubox +libubus
endef endef
define Package/$(PKG_NAME)/description define Package/$(PKG_NAME)/description
BBF TWAMP/TWAMP Light feature TWAMP Client for Performance Measurement from IP Edge to Customer Equipment using TWAMP Light Protocol
endef endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \

View File

@@ -1,13 +1,11 @@
config twamp 'twamp' config twamp 'twamp'
option enable '1' option enable '0'
option twamp_light '1' #Log levels: Critical=0, Error=1, Warning=2, Notice=3, Info=4, Debug=5
#Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4 option log_level '4'
option log_level '3'
config twamp_reflector 'reflector_1' config twamp_reflector 'reflector_1'
option enable '0' option enable '0'
option interface 'wan' option interface 'wan'
option port '862' option port '862'
option max_ttl '1' option max_ttl '1'

View File

@@ -14,7 +14,7 @@ function configure_firewall()
{ {
local enable port interface local enable port interface
config_get enable ${1} enable "0" config_get enable ${1} enable "1"
config_get port ${1} port config_get port ${1} port
config_get interface ${1} interface config_get interface ${1} interface
if [ "$enable" -eq 0 -o -z "${port}" -o -z "${interface}" ]; then if [ "$enable" -eq 0 -o -z "${port}" -o -z "${interface}" ]; then
@@ -27,5 +27,21 @@ function configure_firewall()
fi fi
} }
function delete_rule()
{
while iptables -w 1 -L zone_${1}_input --line-numbers | grep "TWAMP reflector port" > /dev/null; do
iptables -w 1 -D zone_${1}_input $(iptables -w 1 -L zone_${1}_input --line-numbers | grep "TWAMP reflector port" | head -1|awk '{print $1}');
done
}
# Loop through all interfaces and delete the twamp reflector rule from interface's input chain
config_load network
config_foreach delete_rule interface
config_load twamp config_load twamp
config_get twamp_enable twamp enable "0"
if [ "${twamp_enable}" -eq "0" ]; then
exit 0;
fi
config_foreach configure_firewall twamp_reflector config_foreach configure_firewall twamp_reflector

View File

@@ -22,6 +22,9 @@ start_service() {
reload_service() { reload_service() {
stop stop
start start
[ -f /etc/firewall.twamp ] && {
sh /etc/firewall.twamp
}
} }
service_triggers() { service_triggers() {

View File

@@ -7,42 +7,63 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=udpechoserver PKG_NAME:=udpecho
PKG_VERSION:=1.0.3 PKG_VERSION:=2.0.1
PKG_SOURCE_VERSION:=4e80bbec15b284080798b5ffbe8655febaa239aa LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/udpechoserver.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/udpecho.git
PKG_SOURCE_VERSION:=19a555c2d460db6bdfcfa53742011fbb6a4ca6af
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
MAKE_PATH:=src MAKE_PATH:=src
define Package/$(PKG_NAME) define Package/$(PKG_NAME)-server
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=BBF UDP Echo Server TITLE:=BBF UDP Echo Server
DEPENDS:=+libuci +libbbf_api DEPENDS:=+libuci
endef endef
define Package/$(PKG_NAME)/description define Package/$(PKG_NAME)-client
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=BBF UDP Echo Client
endef
define Package/$(PKG_NAME)-server/description
BBF UDP Echo Server BBF UDP Echo Server
endef endef
define Package/$(PKG_NAME)-client/description
BBF UDP Echo Client
endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-Wall -Werror -Wall -Werror
define Package/$(PKG_NAME)/install ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/udpecho/* $(PKG_BUILD_DIR)/
endef
endif
define Package/$(PKG_NAME)-server/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib/bbfdm $(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/config
@@ -53,4 +74,10 @@ define Package/$(PKG_NAME)/install
$(INSTALL_BIN) ./files/etc/init.d/udpechoserverd $(1)/etc/init.d/udpechoserverd $(INSTALL_BIN) ./files/etc/init.d/udpechoserverd $(1)/etc/init.d/udpechoserverd
endef endef
$(eval $(call BuildPackage,$(PKG_NAME))) define Package/$(PKG_NAME)-client/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/udpechoclientd $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,$(PKG_NAME)-server))
$(eval $(call BuildPackage,$(PKG_NAME)-client))

View File

@@ -0,0 +1,61 @@
#!/bin/sh /etc/rc.common
#UDP Echo Server software
# Copyright (C) 2020 iopsys Software Solutions AB
#Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
START=99
STOP=02
USE_PROCD=1
PROG="/usr/sbin/udpechoserverd"
start_service() {
local enable_udpechoserver port_udpechoserver address_udpechoserver
enable_udpechoserver="$(uci -q get udpechoserver.udpechoserver.enable)"
port_udpechoserver="$(uci -q get udpechoserver.udpechoserver.server_port)"
address_udpechoserver="$(uci -q get udpechoserver.udpechoserver.address)"
if [ "${enable_udpechoserver}" -eq "1" ] && [ "$port_udpechoserver" -ne "0" ]; then
if [ -z "$address_udpechoserver" ]; then
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
ip6tables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
elif [[ "$address_udpechoserver" =~ .*:.* ]]; then
ip6tables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
else
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
fi
procd_open_instance
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
procd_close_instance
fi
}
stop_service() {
# Remove the USPechoserver ports created earlier
while iptables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" > /dev/null; do
iptables -D zone_wan_input $(iptables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" | head -1|awk '{print $1}');
done
while ip6tables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" > /dev/null; do
ip6tables -D zone_wan_input $(ip6tables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" | head -1|awk '{print $1}');
done
plus_enable="$(uci -q -c /var/state get udpechoserver.udpechoserver.plus)"
if [ -n "${plus_enable}" ]; then
uci -q set udpechoserver.udpechoserver.plus="${plus_enable}"
uci commit udpechoserver
fi
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger udpechoserver
}

View File

@@ -1,39 +0,0 @@
#!/bin/sh /etc/rc.common
#UDP Echo Server software
# Copyright (C) 2020 iopsys Software Solutions AB
#Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
START=99
STOP=10
USE_PROCD=1
PROG="/usr/sbin/udpechoserverd"
start_service() {
local enable_udpechoserver=`uci -q get udpechoserver.udpechoserver.enable`
local port_udpechoserver=`uci -q get udpechoserver.udpechoserver.server_port`
if [ "$port_udpechoserver" != "0" ]; then
if [ "$enable_udpechoserver" = "1" ]; then
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
procd_open_instance
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
procd_close_instance
else
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j REJECT -m comment --comment "Close UDPechoserver port"
fi
fi
}
boot() {
start
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger udpechoserver
}

View File

@@ -6,18 +6,17 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=urlfilter PKG_NAME:=urlfilter
PKG_VERSION:=1.1.1 PKG_VERSION:=1.1.3
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=a2fca29140673d058eb0bfb2b3b3c9e61d7f301f
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/urlfilter.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/urlfilter.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE_VERSION:=5a64642ac33e629151788b3ff1de920776bcd2ed
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
@@ -35,7 +34,6 @@ define Package/urlfilter/description
endef endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE -D_GNU_SOURCE
ifeq ($(LOCAL_DEV),1) ifeq ($(LOCAL_DEV),1)

View File

@@ -0,0 +1,419 @@
{
"json_plugin_version": 1,
"Device.{BBF_VENDOR_PREFIX}URLFilter.": {
"type": "object",
"version": "2.14",
"protocols": [
"cwmp",
"usp"
],
"access": false,
"array": false,
"Enable": {
"type": "boolean",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"name": "globals"
},
"option": {
"name": "enable"
}
}
}
]
},
"GlobalBlacklist": {
"type": "boolean",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"name": "globals"
},
"option": {
"name": "global_blacklist"
}
}
}
]
},
"BlacklistURL": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"list": {
"datatype": "string"
},
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"name": "globals"
},
"list": {
"name": "blacklist_url"
}
}
}
]
},
"ProfileNumberOfEntries": {
"type": "unsignedInt",
"read": true,
"write": false,
"version": "2.14",
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "profile"
},
"option": {
"name": "@Count"
}
}
}
]
},
"Device.{BBF_VENDOR_PREFIX}URLFilter.Profile.{i}.": {
"type": "object",
"version": "2.14",
"protocols": [
"cwmp",
"usp"
],
"uniqueKeys": [
"Name"
],
"access": true,
"array": true,
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "profile"
},
"dmmapfile": "dmmap_urlfilter"
}
}
],
"Name": {
"type": "string",
"read": true,
"write": true,
"version": "2.14",
"protocols": [
"cwmp",
"usp"
],
"datatype": "string",
"range": [
{
"max": 64
}
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "profile"
},
"option": {
"name": "@Name"
}
}
}
]
},
"WhitelistURL": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"list": {
"datatype": "string"
},
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "profile"
},
"list": {
"name": "whitelist_url"
}
}
}
]
},
"BlacklistURL": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"list": {
"datatype": "string"
},
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "profile"
},
"list": {
"name": "blacklist_url"
}
}
}
]
}
},
"FilterNumberOfEntries": {
"type": "unsignedInt",
"read": true,
"write": false,
"version": "2.14",
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"option": {
"name": "@Count"
}
}
}
]
},
"Device.{BBF_VENDOR_PREFIX}URLFilter.Filter.{i}.": {
"type": "object",
"version": "2.14",
"protocols": [
"cwmp",
"usp"
],
"access": true,
"array": true,
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"dmmapfile": "dmmap_urlfilter"
}
}
],
"Enable": {
"type": "boolean",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"option": {
"name": "enable"
}
}
}
]
},
"Profile": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"option": {
"name": "profile"
}
},
"linker_obj": "Device.{BBF_VENDOR_PREFIX}URLFilter.Profile."
}
]
},
"MACAddress": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"list": {
"datatype": "string"
},
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"list": {
"name": "macaddr"
}
}
}
]
},
"Day": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"list": {
"datatype": "string"
},
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"list": {
"name": "day"
}
}
}
]
},
"StartTime": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"option": {
"name": "start_time"
}
}
}
]
},
"Duration": {
"type": "string",
"version": "2.14",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "urlfilter",
"section": {
"type": "filter"
},
"option": {
"name": "duration"
}
}
}
]
}
}
}
}

42
usp-js/Makefile Normal file
View File

@@ -0,0 +1,42 @@
#
# Copyright (C) 2022 IOPSYS
#
#
include $(TOPDIR)/rules.mk
PKG_NAME:=usp-js
PKG_VERSION:=0.0.1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/usp-js.git
PKG_SOURCE_VERSION:=7e285eb006414f230a3c17acf1b6f4c31c987447
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/usp-js
SECTION:=libs
CATEGORY:=Libraries
TITLE:=A JS library for USP(TR369) protocol
DEPENDS:=+quickjs +quickjs-websocket
endef
define Package/usp-js/description
A JS library to provide USP(TR369) protocol functionality for an usp controller.
endef
define Build/Compile
cd $(PKG_BUILD_DIR) && npm install @types/node --save-dev && yarn qjs
endef
define Package/usp-js/install
$(INSTALL_DIR) $(1)/usr/lib/usp-js
$(CP) $(PKG_BUILD_DIR)/qjs/* $(1)/usr/lib/usp-js/
endef
$(eval $(call BuildPackage,usp-js))

View File

@@ -1,14 +0,0 @@
if PACKAGE_uspd
menu "Configuration"
config USPD_MAX_MSG_LEN
int "Maximum message length"
default 10485760
help
Set the maximum data length allowed over ubus in Bytes.
This value should not be larger than UBUS_MAX_MSGLEN from ubusd.
The maximum blob message length allowed is:
(configured value - 128) bytes
endmenu
endif

View File

@@ -5,46 +5,72 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=uspd PKG_NAME:=uspd
PKG_VERSION:=2.2.6 PKG_VERSION:=2.2.11
LOCAL_DEV:=0 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=ff39170a3e0595a67763a61ac81b2f99b5bf11d7
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/uspd.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/uspd.git
PKG_SOURCE_VERSION:=1bfd9937ae31c6878aff77fca25f9265d822b57d
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/uspd define Package/uspd/default
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=USP ubus backend TITLE:=Datamodel ubus backend
DEPENDS:=+libubox +ubus +libbbfdm +@BBFDM_ENABLE_JSON_PLUGIN +@BBFDM_ENABLE_DOTSO_PLUGIN \ DEPENDS:=+USE_GLIBC:librt +libubox +ubus +@BBFDM_ENABLE_JSON_PLUGIN +@BBFDM_ENABLE_DOTSO_PLUGIN \
+@BBF_TR181 +@BBF_TR104 +@BBF_TR143 +@BBF_TR181 +@BBF_TR104 +@BBF_TR143
endef endef
define Package/uspd/description define Package/uspd-mbedtls
Ubus based backend for TR-369/USP which can be used by other USP agents $(Package/uspd/default)
running on top of it. TITLE += (mbedtls)
DEPENDS += +PACKAGE_uspd-mbedtls:libbbfdm-mbedtls
VARIANT:=mbedtls
DEFAULT_VARIANT:=1
endef endef
define Package/uspd/config define Package/uspd-openssl
source "$(SOURCE)/Config.in" $(Package/uspd/default)
TITLE += (openssl)
DEPENDS += +PACKAGE_uspd-openssl:libbbfdm-openssl
CONFLICTS := uspd-mbedtls
VARIANT:=openssl
endef
define Package/uspd-wolfssl
$(Package/uspd/default)
TITLE += (wolfssl)
DEPENDS += +PACKAGE_uspd-wolfssl:libbbfdm-wolfssl
CONFLICTS := uspd-mbedtls uspd-openssl
VARIANT:=wolfssl
endef endef
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-Wall -Werror \ -Wall -Werror \
-DUSPD_MAX_MSG_LEN=$(CONFIG_USPD_MAX_MSG_LEN) -DUSPD_MAX_MSG_LEN="10485760"
TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lrt)
ifeq ($(BUILD_VARIANT),openssl)
MAKE_FLAGS += USE_OPENSSL="yes"
endif
ifeq ($(BUILD_VARIANT),wolfssl)
MAKE_FLAGS += USE_WOLFSSL="yes"
endif
ifeq ($(BUILD_VARIANT),mbedtls)
MAKE_FLAGS += USE_MBEDTLS="yes"
endif
ifeq ($(LOCAL_DEV),1) ifeq ($(LOCAL_DEV),1)
define Build/Prepare define Build/Prepare
@@ -52,15 +78,19 @@ define Build/Prepare
endef endef
endif endif
define Package/uspd/install define Package/uspd/default/install
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/bbfdm/json/
$(INSTALL_BIN) ./files/etc/init.d/uspd $(1)/etc/init.d/uspd $(INSTALL_BIN) ./files/etc/init.d/uspd $(1)/etc/init.d/uspd
$(INSTALL_CONF) ./files/etc/config/uspd $(1)/etc/config/uspd $(INSTALL_CONF) ./files/etc/config/uspd $(1)/etc/config/uspd
$(INSTALL_DATA) ./files/etc/bbfdm/json/transferComplete.json $(1)/etc/bbfdm/json/
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uspd $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/uspd $(1)/usr/sbin/
endef endef
$(eval $(call BuildPackage,uspd)) Package/uspd-openssl/install = $(Package/uspd/default/install)
Package/uspd-wolfssl/install = $(Package/uspd/default/install)
Package/uspd-mbedtls/install = $(Package/uspd/default/install)
$(eval $(call BuildPackage,uspd-openssl))
$(eval $(call BuildPackage,uspd-wolfssl))
$(eval $(call BuildPackage,uspd-mbedtls))

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=wfa-capi PKG_NAME:=wfa-capi
PKG_VERSION:=1.1.0 PKG_VERSION:=1.1.2
LOCAL_DEV=0 LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=189c59448ff33fd713a6a218206b18f0c613793a PKG_SOURCE_VERSION:=ce29c2d69d0ca96b61f2de5d1ba107c8d31cb5ef
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfa-capi.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfa-capi.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip

View File

@@ -1,9 +1,4 @@
if PACKAGE_wfadatad || PACKAGE_wfadatad-collector menu "Configuration"
menu "configurations"
config WFA_DELM_STANDALONE
bool "Build as standalone daemon instead of a plugin"
default y
config WFA_DELM_MULTIAP_MODE config WFA_DELM_MULTIAP_MODE
bool "Enable Multi-AP mode" bool "Enable Multi-AP mode"
@@ -13,4 +8,3 @@ config WIFI_DELM_DEBUG
bool "Enable debug logs" bool "Enable debug logs"
default n default n
endmenu endmenu
endif

View File

@@ -1,23 +1,23 @@
# #
# Copyright (C) 2021 IOPSYS Software Solutions AB # Copyright (C) 2021-2022 IOPSYS Software Solutions AB
# #
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=wfadatad PKG_NAME:=wfadatad
PKG_VERSION:=6.12.2 PKG_VERSION:=2.8.0.1
LOCAL_DEV=0 LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1) ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=090f5e7c3a379cc46b3473d997a7aaee6b255000 PKG_SOURCE_VERSION:=01fd303670eef525e35c5337c4cf15418588273f
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfadatad.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfadatad.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@@ -25,9 +25,9 @@ include $(INCLUDE_DIR)/package.mk
define Package/wfadatad define Package/wfadatad
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
TITLE:=WiFi DataElements Agent TITLE:=WiFi DataElements Agent (standalone) daemon
DEPENDS:=+libwifi +libuci +libubox +ubus +libpthread +libnl-genl \ DEPENDS:=+libwifi +libuci +libubox +ubus +libpthread +libnl-genl \
+!WFA_DELM_STANDALONE:map-agent +libieee1905 +map-plugin @(!PACKAGE_map-agent) +libieee1905 +map-plugin
endef endef
define Package/wfadatad/description define Package/wfadatad/description
@@ -37,24 +37,20 @@ endef
define Package/wfadatad-collector define Package/wfadatad-collector
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
TITLE:=WiFi DataElements Collector TITLE:=WiFi DataElements Collector Proxy
DEPENDS:=+libuci +libubox +ubus +libpthread +libnl-genl \ DEPENDS:=+libuci +libubox +ubus +libpthread +libnl-genl \
+libieee1905 +map-plugin +libieee1905 +map-plugin
endef endef
define Package/wfadatad-collector/description define Package/wfadatad-collector/description
It implements WiFi DataElement Collector. It implements the WiFi DataElements Collector Proxy component.
endef endef
define Package/wfadatad/config define Package/wfadatad-collector/config
source "$(SOURCE)/Config.in" source "$(SOURCE)/Config.in"
endef endef
ifeq ($(CONFIG_WFA_DELM_STANDALONE),y)
MAKE_FLAGS += CONFIG_WFA_DELM_STANDALONE=y
endif
ifneq (,$(findstring ALPHA,$(CONFIG_VERSION_CODE))) ifneq (,$(findstring ALPHA,$(CONFIG_VERSION_CODE)))
MAKE_FLAGS += DEBUG=1 MAKE_FLAGS += DEBUG=1
endif endif
@@ -85,29 +81,17 @@ MAKE_FLAGS += EXECS="$(EXECS)"
define Package/wfadatad/install define Package/wfadatad/install
ifeq ($(CONFIG_WFA_DELM_STANDALONE),y)
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) ./files/deagent.init $(1)/etc/init.d/deagent $(INSTALL_BIN) ./files/deagent.init $(1)/etc/init.d/deagent
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/agent/deagent $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/agent/deagent $(1)/usr/sbin/
else
$(INSTALL_DIR) $(1)/usr/lib/map-plugins
$(CP) $(PKG_BUILD_DIR)/src/agent/deagent.so $(1)/usr/lib/map-plugins
endif
endef endef
define Package/wfadatad-collector/install define Package/wfadatad-collector/install
ifeq ($(CONFIG_WFA_DELM_STANDALONE),y)
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) ./files/decollector.init $(1)/etc/init.d/decollector $(INSTALL_BIN) ./files/decollector.init $(1)/etc/init.d/decollector
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/collector/decollector $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/collector/decollector $(1)/usr/sbin/
else
$(INSTALL_DIR) $(1)/usr/lib/map-plugins
$(CP) $(PKG_BUILD_DIR)/src/collector/decollector.so $(1)/usr/lib/map-plugins
endif
endef endef
$(eval $(call BuildPackage,wfadatad)) $(eval $(call BuildPackage,wfadatad))

View File

@@ -7,7 +7,7 @@ USE_PROCD=1
PROG=/usr/sbin/decollector PROG=/usr/sbin/decollector
service_running() { service_running() {
ubus -t 2 wait_for ieee1905 ieee1905.map ubus -t 2 wait_for ieee1905 ieee1905.map topology
} }
start_service() { start_service() {

View File

@@ -8,20 +8,25 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=xmppc PKG_NAME:=xmppc
PKG_VERSION:=1.0.3 PKG_VERSION:=2.0.2
PKG_SOURCE_VERSION:=4a09b8689d67dcbf3fd1b7e80e53816b7cd12614 LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/xmppc.git PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/xmppc.git
PKG_SOURCE_VERSION:=63ba23c1dc5de3d136a3c1568ae9de08762fd0d0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME) define Package/$(PKG_NAME)
@@ -29,13 +34,19 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities CATEGORY:=Utilities
SUBMENU:=TRx69 SUBMENU:=TRx69
TITLE:=BBF xmpp Client TITLE:=BBF xmpp Client
DEPENDS:=+libuci +libubox +libstrophe +libbbf_api +libubus DEPENDS:=+libuci +libubox +libstrophe +libubus
endef endef
define Package/$(PKG_NAME)/description define Package/$(PKG_NAME)/description
BBF XMPP Client BBF XMPP Client
endef endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/xmppc/* $(PKG_BUILD_DIR)/
endef
endif
TARGET_CFLAGS += \ TARGET_CFLAGS += \
-D_GNU_SOURCE \ -D_GNU_SOURCE \
-Wall -Werror -Wall -Werror

View File

@@ -1,13 +1,11 @@
config xmpp 'xmpp' config xmpp 'xmpp'
option enable '0' option conn_req_connection 'connection_1'
option id '0'
option allowed_jid '' option allowed_jid ''
#Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4 #Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4
option loglevel '3' option loglevel '3'
config connection config connection 'connection_1'
option xmpp_id '1'
option enable '0' option enable '0'
option username '' option username ''
option password '' option password ''
@@ -21,9 +19,19 @@ config connection
option retry_max_interval '1' option retry_max_interval '1'
option serveralgorithm 'DNS-SRV' option serveralgorithm 'DNS-SRV'
config connection_server config connection_server 'connection_1_srv_1'
option con_id '1' option con_name 'connection_1'
option enable '0' option enable '0'
option priority '0'
option weight '-1'
option port '5222'
option server_address ''
config connection_server 'connection_1_srv_2'
option con_name 'connection_1'
option enable '0'
option priority '0'
option weight '-1'
option port '5222' option port '5222'
option server_address '' option server_address ''

View File

@@ -7,20 +7,13 @@ USE_PROCD=1
PROG="/usr/sbin/xmppc" PROG="/usr/sbin/xmppc"
start_service() { start_service() {
local xmpp_enable=`uci -q get xmpp.xmpp.enable` local con_name=$(uci -q get xmpp.xmpp.conn_req_connection)
local xmpp_id=`uci -q get xmpp.xmpp.id` local con_enable=$(uci -q get xmpp.$con_name.enable)
if ([ "$xmpp_enable" = "1" ] && [ "$xmpp_id" != "0" ]); then if [ "$con_enable" == "1" ]; then
local con=`uci show xmpp | grep "xmpp.@connection.*xmpp_id=\'$xmpp_id\'" | cut -d "." -f 2` procd_open_instance
local con_srv=`uci show xmpp | grep "xmpp.@connection.*con_id=\'$xmpp_id\'" | cut -d "." -f 2` procd_set_param command "$PROG"
local serveralgorithm=`uci get xmpp.$con.serveralgorithm` procd_set_param respawn "3" "7" "0"
local con_enable=`uci -q get xmpp.$con.enable` procd_close_instance
local srv_enable=`uci -q get xmpp.$con_srv.enable`
if ([ "$serveralgorithm" = "DNS-SRV" ] && [ "$con_enable" = "1" ]) || ([ "$serveralgorithm" = "ServerTable" ] && [ "$con_enable" = "1" ] && [ "$srv_enable" = "1" ]); then
procd_open_instance xmppc
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
procd_close_instance
fi
fi fi
} }
@@ -29,6 +22,7 @@ boot() {
} }
reload_service() { reload_service() {
logger -p crit -t "xmppc" "reloading service()"
stop stop
start start
} }