Compare commits

...

597 Commits

Author SHA1 Message Date
Amit Kumar
0385a0b715 qos: qos reload handling updated 2022-11-23 18:08:57 +05:30
vdutta
5dd35e99e2 obuspa: Fix db update with uci delete 2022-11-23 12:07:26 +05:30
hemlata
43dd5bf8c7 endptmgr :Correction of codec names for codecs ubus call 2022-11-22 14:11:53 +01:00
Filip Matusiak
98ea973e61 map-agent: 2.10.3.27
Signed-off-by: Filip Matusiak <filip.matusiak@iopsys.eu>
2022-11-22 10:49:26 +01:00
vdutta
f7d0cc8dbd sulu: 1.3.9 2022-11-21 17:27:48 +05:30
hemlata
0afb94dc77 endptmngr :Support hardware specific codec capability other than hardcoding 2022-11-21 11:39:05 +01:00
Amin Ben Romdhane
3835cc0bc9 bbf: 6.8.3 2022-11-18 14:19:09 +01:00
subramanian c
7b766ea7f1 qos: Apply qos classify config in the order of order param value 2022-11-18 11:37:55 +00:00
Dineshkumar
4efacdaee5 iop: genconfig_min: Added ipq95xx target in TARGET_DEVICES model
Signed-off-by: Dineshkumar <quic_dinel@quicinc.com>
2022-11-18 10:43:15 +05:30
Dineshkumar
fb91a7f70f iop: genconfig: Added ipq95xx target in TARGET_DEVICES model
Signed-off-by: Dineshkumar <quic_dinel@quicinc.com>
2022-11-17 15:08:34 +00:00
Jakob Olsson
47f47ac097 map-controller: 2.11.0.14 2022-11-17 15:55:25 +01:00
vdutta
b4cb466f4e icwmp: 9.1.0 2022-11-17 17:02:21 +05:30
vdutta
9a1cd147d0 bbf: 6.8.2 2022-11-17 17:01:57 +05:30
vdutta
c67e429387 sulu: 1.3.8 2022-11-17 16:32:22 +05:30
Jakob Olsson
a5e6d08394 map-controller: 2.11.0.13 2022-11-17 09:45:31 +01:00
Andreas Gnau
a37729d885 iop: config: Set version config-settings
Set version config settings and document the motivation behind some
settings. This enables use of standard OpenWrt image naming for IOWRT.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-11-17 08:42:07 +00:00
vdutta
2efa706f67 bbf: 6.8.1 2022-11-16 21:28:38 +05:30
Jakob Olsson
1911881b94 wifimngr: 05-wifi: fix multiap.backhaul path 2022-11-16 16:57:50 +01:00
Jakob Olsson
8c9f390b89 map-agent: fix multiap.backhaul path 2022-11-16 16:57:30 +01:00
Wenpeng Song
9dacae709b evoice 0.2.39
Correct libvoiceservice MaxQIValues
2022-11-16 09:16:32 +00:00
Amin Ben Romdhane
363fb57b3e bbf: Added support for UserInterface Object 2022-11-15 17:41:25 +00:00
Jakob Olsson
99ed84be4d map-controller: 2.11.0.12 2022-11-15 16:42:42 +01:00
Jakob Olsson
930611301b map-agent: 2.10.3.26 2022-11-15 16:42:05 +01:00
Jakob Olsson
e06e0a6599 ieee1905: 5.0.20 2022-11-15 16:40:16 +01:00
Filip Matusiak
9de5fe3362 map-controller: validate sta_steering section of cntlr config file
Signed-off-by: Filip Matusiak <filip.matusiak@iopsys.eu>
2022-11-15 14:00:24 +00:00
Filip Matusiak
c9fded45b7 map-controller: add sta_steering in example cntlr config file
Signed-off-by: Filip Matusiak <filip.matusiak@iopsys.eu>
2022-11-15 14:00:24 +00:00
Lukasz Kotasa
545a54eb9f TARGET rename: iopsys-brcm63xx-arm -> brcmbca 2022-11-15 12:04:23 +00:00
Lukasz Kotasa
b979bf4891 genconfig: rename iopsys-brcm63xx-arm -> brcmbca 2022-11-15 12:04:23 +00:00
Sukru Senli
d2111b2bad qosmngr: econet -> airoha 2022-11-15 11:30:10 +01:00
Lukasz Kotasa
ffb839b1d0 qosmngr: rename econet target 2022-11-14 12:47:19 +00:00
suvendhu
360e48a3cf urlfilter: added description of vendor parameters 2022-11-14 06:50:10 +00:00
vdutta
71198a83de bulkdata: 2.0.9 2022-11-14 11:04:33 +05:30
Grzegorz Sluja
87eb713593 endptmngr: Refactor inconsistency about call_id, pcm_id and pcm_state 2022-11-11 10:37:08 +01:00
vdutta
5fbc3e9efb sulu: 1.3.7 2022-11-11 14:20:46 +05:30
Janusz Dziedzic
6140efcb5a easy-soc-libs: 6.7.6
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-11-10 14:47:33 +00:00
Yalu Zhang
108c98c8bb Update package voicemngr
Fix a compiling error on release-6.5 branch
2022-11-10 15:35:42 +01:00
Lukasz Kotasa
887fb46dbd Rename TARGET_iopsys_econet -> TARGET_airoha 2022-11-09 09:39:34 +00:00
Lukasz Kotasa
1b65330af4 genconfig: rename iopsys-econet -> airoha 2022-11-09 09:39:34 +00:00
vdutta
cf709c995f sulu: 1.3.6 2022-11-09 12:27:19 +05:30
Amit Kumar
6a1b7d91a1 qosmngr: handled qos reload, statistics reset
hanlded the qos reload without statistics reset.
shaping , classification or policer change and qos reload should
not cause queue reset in driver that was causing statistics of that queue
reset to 0. qos reload if trigerred with queue specific config change,in
that case only statistics will reset tot 0.
2022-11-09 02:47:46 +00:00
vdutta
a1bbf877a1 uspd: 2.2.16 2022-11-08 17:08:08 +05:30
vdutta
ac24516ec0 sulu: 1.3.5 2022-11-08 15:45:21 +05:30
vdutta
aab79b15f1 sulu: 1.3.4 2022-11-08 15:21:11 +05:30
vdutta
39fd5323b0 bulkdata: 2.0.8 2022-11-07 18:17:49 +05:30
vdutta
ba6f732628 icwmp: 9.0.17 2022-11-07 18:01:03 +05:30
vdutta
ada4e7cfd5 sulu: 1.3.3 2022-11-04 20:51:46 +05:30
Sukru Senli
c9d73a6bcb sulu: 1.3.2 2022-11-04 16:13:28 +01:00
vdutta
e91fc5169c sulu: 1.3.1 2022-11-04 12:51:25 +00:00
vdutta
452b1e548a bbf: 6.7.5 2022-11-04 18:10:43 +05:30
Amin Ben Romdhane
630c3ec7ba bbf: 6.7.4 2022-11-04 12:16:27 +01:00
vdutta
c808bb188d icwmp: 9.0.16 2022-11-04 16:32:42 +05:30
vdutta
dce4728377 uspd: 2.2.15 2022-11-04 16:31:40 +05:30
Amin Ben Romdhane
38d77bcf5c bbf: 6.7.3 2022-11-03 17:03:41 +01:00
vdutta
e99cdc434f bbf: 6.7.2 2022-11-03 12:04:56 +05:30
Maxim Menshikov
225bf15ae7 qosmngr: implement Econet support in configuration scripts
- restructure qosmngr separating broadcom and airoha
2022-11-03 06:21:48 +00:00
Yalu Zhang
dd69c0b4b1 Update voicemngr and libvoice 2022-11-02 15:16:30 +01:00
subramanian c
cc7d076dc8 qos: Apply qos classify config in the order of order param value 2022-11-01 09:41:03 +00:00
Yalu Zhang
1d1c621821 Add a new package voicemngr
Voicemngr is an upgrading of endptmngr and supports multiple platforms.
2022-10-31 16:26:01 +01:00
vdutta
d70db5ef94 icwmp: 9.0.15 2022-10-31 15:22:19 +05:30
vdutta
656ead95cb icwmp: 9.0.14 2022-10-31 08:58:54 +05:30
Vivek Kumar Dutta
d13ee35789 Revert "icwmp: 2.0.7"
This reverts commit db3147076e
2022-10-31 03:27:01 +00:00
vdutta
0534b9c616 bulkdata: 2.0.7 2022-10-31 08:54:24 +05:30
vdutta
db3147076e icwmp: 2.0.7 2022-10-31 08:53:27 +05:30
vdutta
3c67fbf70b icwmp: 9.0.13 2022-10-30 13:00:03 +05:30
Anjan Chanda
49d6c61a8a ieee1905: 5.0.19: fixup EASYMESH_VERSION default value 2022-10-28 16:02:42 +02:00
Sukru Senli
549746bffd sulu: 1.3.0 2022-10-28 13:02:47 +02:00
Anjan Chanda
bc73d859a2 ieee1905: 5.0.19: move plugin makefiles to plugins directory 2022-10-27 13:31:16 +02:00
Anjan Chanda
998ea1fa85 ieee1905: 5.0.19 2022-10-27 12:17:36 +02:00
Grzegorz Bielski
020606132e evoice: 0.2.38 accept msgs only from proxy 2022-10-27 11:03:34 +02:00
Piotr Kubik
d693cb2fbb iop: ssh_install_key: Disable host key checking
This change simplifies ssh key install
when connecting to different hosts with same IP address.
2022-10-27 06:46:50 +00:00
Piotr Kubik
9cf572e22e iop: ssh_upgrade: Disable host key checking
This change simplifies ssh updates when connecting to
different hosts with same IP address.
2022-10-27 06:46:50 +00:00
Piotr Kubik
1759f36740 iop: ssh_upgrade: Fix usage option typo 2022-10-27 06:46:50 +00:00
Janusz Dziedzic
c3666a7b40 wifimngr: 14.3.1
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-10-26 10:04:14 +00:00
hemlata
c691dd210a evoice : Support transmit and receive gain on Airoha 2022-10-26 09:39:41 +02:00
Jakob Olsson
d3c5f0d78a map-agent: 2.10.3.25 2022-10-25 16:34:29 +02:00
Sukru Senli
62dc66831a iop: config: deselect peripheral-manager
will be selectd by target device which needs it
2022-10-25 14:51:52 +02:00
Jakob Olsson
1ba9025809 map-agent: 2.10.3.24 2022-10-25 11:01:38 +02:00
Anjan Chanda
da2a5a6a9d map-topology: 2.5.1.8 2022-10-25 09:47:23 +02:00
Anjan Chanda
da9bd48dd5 wfadatad: 2.10.0.4 2022-10-25 09:21:10 +02:00
Anjan Chanda
56a49d4628 ieee1905: 5.0.17 2022-10-25 09:10:54 +02:00
Roman Azarenko
152a15d147 swmodd: fix typos in error message for low disk space, bundle existence 2022-10-23 21:36:28 +02:00
Andreas Gnau
47f938f0fd iop: config: iptables-legacy => iptables-zz-legacy
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-10-22 10:02:02 +00:00
Jakob Olsson
56f653c84b map-agent: 2.10.3.23 2022-10-21 14:11:39 +02:00
Jakob Olsson
5527f66c11 map-controler: allow band 6 in radio section 2022-10-21 09:47:35 +02:00
Jakob Olsson
aadc11e7f4 map-agent: allow band 6 in radio setion 2022-10-21 09:47:23 +02:00
vdutta
15e7f35459 obuspa: 6.0.0.7 2022-10-21 10:19:22 +05:30
vdutta
8569ef77fc icwmp: 9.0.12 2022-10-21 09:30:56 +05:30
Jakob Olsson
e3c1e47040 map-agent: 2.10.3.22 2022-10-20 15:57:16 +02:00
Rahul
c722f70f10 ponmngr: update serial number generation 2022-10-20 12:26:05 +00:00
Anjan Chanda
e6a6703b73 ieee1905: 5.0.16 2022-10-20 14:24:58 +02:00
vdutta
dddd927d30 obuspa: Fix internal role for set command 2022-10-20 12:08:41 +05:30
Amin Ben Ramdhane
f9a31cd9dc bbf: 6.7.1 2022-10-19 19:58:24 +01:00
Jakob Olsson
abeedffa94 map-agent: 2.10.3.21 2022-10-19 16:12:46 +02:00
Suvendhu Hansa
bda286a27d icwmpd: 9.0.11 2022-10-19 12:40:09 +00:00
vdutta
3039f3725e stunc: 1.1.14 2022-10-19 14:11:33 +05:30
Jakob Olsson
21d63db2f8 wfadatad: 2.10.0.1 2022-10-18 17:48:55 +02:00
Jakob Olsson
6ec7d8c06b map-controller: 2.11.0.11 2022-10-18 17:48:20 +02:00
Jakob Olsson
09949f6823 map-agent: 2.10.3.20 2022-10-18 17:47:35 +02:00
Anjan Chanda
e870ac2161 ieee1905: 5.0.14 2022-10-18 17:02:59 +02:00
hemlata
2415a92f08 evoice : Support Echo Cancellation which can be configured via TR-104 2022-10-18 16:07:15 +02:00
Jakob Olsson
f3be07599e map-controller: 2.11.0.10 2022-10-18 15:48:04 +02:00
vdutta
2593f9d472 obuspa: 6.0.0.5 2022-10-18 17:33:29 +05:30
Anjan Chanda
7d8396f21c wifimngr: 14.3.0 2022-10-18 13:01:28 +02:00
Dineshkumar
84c8f673c5 iop: genconfig: add qualcomm ipq95xx target
Signed-off-by: Dineshkumar <quic_dinel@quicinc.com>
2022-10-18 10:00:53 +00:00
Grzegorz Sluja
e3ed5f9581 dectmngr: Play dial tone if called number is not included in call establish message 2022-10-18 11:34:08 +02:00
vdutta
e904e57bc8 obuspa: 6.0.0.4 2022-10-18 11:19:30 +05:30
Amin Ben Ramdhane
3fcb150330 bbf: 6.7.0 2022-10-17 18:36:24 +01:00
Anjan Chanda
928cde7e3c ieee1905: 5.0.13 2022-10-17 15:23:37 +02:00
Grzegorz Bielski
f2aa11ba83 evoice: 0.2.35 support of sip sess. timer per account 2022-10-17 13:50:08 +02:00
Jakob Olsson
dd18b4ff9a map-controller: 2.11.0.9 2022-10-17 11:38:13 +02:00
Janusz Dziedzic
875ed0fc12 easy-soc-libs: 6.7.5
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-10-17 08:05:11 +00:00
Jakob Olsson
affdd43f7a map-agent: 2.10.3.19 2022-10-14 17:28:57 +02:00
vdutta
9de9248d5a owsd: 1.1.5 2022-10-13 14:59:44 +05:30
vdutta
31a89052f8 bbf: 6.9.9 2022-10-13 14:25:32 +05:30
suvendhu
0248cd1e38 icwmpd: fix uloop deadlock for ProcessStatus 2022-10-13 12:36:31 +05:30
Jakob Olsson
6f21f9bb4b map-controller: 2.11.0.8 2022-10-12 17:24:53 +02:00
Amin Ben Ramdhane
0f87f89b71 bbf: 6.9.8 2022-10-12 12:20:46 +01:00
Amin Ben Ramdhane
ab65dba802 bbf: 6.9.7 2022-10-12 12:15:05 +01:00
Jakob Olsson
6c40e135e9 map-agent: add ip-bridge dependency 2022-10-12 09:58:25 +02:00
Jakob Olsson
893deb57d0 map-agent: initd: remove legacy vlan setup 2022-10-12 09:30:42 +02:00
Anjan Chanda
c3b450a679 ieee1905: 4.11.0 2022-10-11 22:52:17 +02:00
Jakob Olsson
62573f47dc map-controller: 2.11.0.7 2022-10-11 15:52:31 +02:00
hemlata
71bf9943b7 evoice : CallStatus fix for R4/R5 call transfer and 486 busy when on-hold 2022-10-11 14:42:52 +02:00
Suvendhu Hansa
d0fe5d68e3 icwmpd: 9.0.9 2022-10-11 12:04:52 +00:00
Amin Ben Ramdhane
612ea61b0e bbf: 6.9.6 2022-10-10 21:18:14 +01:00
Sukru Senli
53b6001a51 ponmngr: airoha: don't start pon daemons if xpon module is not loaded 2022-10-10 16:53:17 +02:00
Amit Kumar
ad8cee56df libqos: nvg678 qos stats handling
nvg678 is having 64bit broadcom chip.
added compilation flag KERNEL64 for nvg678.
2022-10-10 10:20:50 +05:30
Janusz Dziedzic
ae8c079e8c wifimngr: 14.2.4
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-10-07 12:58:45 +00:00
Janusz Dziedzic
68d1b91701 easy-soc-libs: 6.7.4
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-10-07 12:57:39 +00:00
suvendhu
3389378868 icwmp: added support of AutonomousDUStateChangeComplPolicy 2022-10-07 10:36:38 +00:00
Amin Ben Ramdhane
6a6c123a63 bbf: 6.9.5 2022-10-07 10:37:17 +01:00
hemlata
64c0fa39a0 evoice : Codec name fix for Brcm platform for CodecProfile display 2022-10-07 11:29:39 +02:00
Hemlata
c19fd6cd11 evoice: Correct codec names in the JSON file 2022-10-07 09:21:39 +00:00
Jakob Olsson
6dd17390d7 map-agent: 2.10.3.18 2022-10-06 15:43:08 +02:00
hemlata
59e724dcf2 evoice: libvoiceservice: fix a bug in codec capability initialisation that causes uspd crash on Broadcom platform 2022-10-06 15:29:09 +02:00
vdutta
cc71eb3ef5 obuspa: 6.0.0.3 2022-10-06 15:57:28 +05:30
vdutta
d4ac43a3bf icwmp: 9.0.7 2022-10-06 09:20:53 +05:30
Grzegorz Sluja
56fa7db0a7 dectmngr: Change DECT handset presence check to RSSI request 2022-10-05 15:10:13 +02:00
vdutta
1b58259562 bbf: 6.9.4 2022-10-04 17:01:54 +05:30
vdutta
23d564116c obuspa: 6.0.0.2 2022-10-04 17:00:07 +05:30
vdutta
a5aeba560e icwmp: 9.0.6 2022-10-04 16:43:23 +05:30
Amit Kumar
58688bd436 easy-soc-libs: libqos handling for qos stats 2022-10-03 19:27:37 +05:30
vdutta
3682edfe7b sulu: 1.2.3 2022-09-30 18:57:47 +05:30
Jakob Olsson
feb1932e25 map-topology: 2.5.1.5 2022-09-30 12:31:28 +02:00
Jakob Olsson
696dc1f798 map-controller: 2.11.0.6 2022-09-30 12:30:45 +02:00
Jakob Olsson
4ad3a464fe map-agent: 2.10.3.17 2022-09-30 12:30:03 +02:00
Jakob Olsson
b75f473a5a map-controller: pass CFLAGS EASYMESH_VENDOR_EXT 2022-09-30 12:28:48 +02:00
Jakob Olsson
26023599c1 map-agent: pass CFLAGS EASYMESH_VENDOR_EXT 2022-09-30 12:28:32 +02:00
Anjan Chanda
5f276201b3 ieee1905: 4.10.8 2022-09-30 11:39:14 +02:00
hemlata
f9072e9a21 evoice : Support hardware specific codec capability 2022-09-30 11:34:16 +02:00
Hemlata
3638e0efa2 evoice: provide codecs_evoice.json for codecs capability ubus call 2022-09-30 09:29:44 +00:00
vdutta
fa613814d5 icwmp: 9.0.5 2022-09-30 11:21:21 +05:30
vdutta
9b673e44dc umoci: Switch to tar source 2022-09-30 11:19:40 +05:30
vdutta
44f0bc818e skopeo: Switch to tar source 2022-09-30 11:18:45 +05:30
Wenpeng Song
5d64b987aa evoice 0.2.30
Makefile update for ABI version dependency of libbbf_api
2022-09-29 14:21:45 +00:00
Janusz Dziedzic
da4f911bd9 easy-soc-libs: 6.7.3
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-29 12:03:56 +00:00
Janusz Dziedzic
8c0ae77797 easy-soc-libs: 6.7.2
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-29 11:19:10 +00:00
Filip Matusiak
613656d485 map-controller: load rcpi plugin by default
Signed-off-by: Filip Matusiak <filip.matusiak@iopsys.eu>
2022-09-28 14:09:18 +00:00
Amin Ben Ramdhane
570f421c3d bbf: 6.9.3 2022-09-28 13:03:21 +01:00
Janusz Dziedzic
1c538249ea easy-soc-libs: 6.7.1
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-28 11:06:46 +00:00
Jakob Olsson
2b94cae86b map-controller: 2.11.0.5 2022-09-28 12:38:19 +02:00
vdutta
c2d92def50 icwmp: 9.0.4 2022-09-28 14:36:12 +05:30
Amin Ben Ramdhane
32628e4165 bbf: 6.9.2 2022-09-28 09:01:19 +01:00
Amin Ben Ramdhane
2501484ac2 bulkdata: 2.0.6 2022-09-28 08:59:09 +01:00
Janusz Dziedzic
87b565d552 easy-soc-libs: 6.7.0
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-27 14:56:13 +00:00
Amin Ben Ramdhane
56af686410 bbf: 6.9.1 2022-09-26 14:12:35 +01:00
vdutta
90fd7508b6 periodicstats: 1.2.1 2022-09-26 17:00:09 +05:30
vdutta
5f8cbe5393 stunc: 1.1.13 2022-09-26 16:46:19 +05:30
vdutta
94433b4502 swmodd: 2.1.17 2022-09-26 16:44:58 +05:30
vdutta
e311e64900 udpecho: 2.0.2 2022-09-26 16:43:26 +05:30
vdutta
973b11e33b xmppc: 2.0.3 2022-09-26 16:25:35 +05:30
vdutta
fd3f544210 twamp: 1.2.3 2022-09-26 16:23:24 +05:30
vdutta
078bcd16c1 bbf: 6.9.0 2022-09-26 15:58:49 +05:30
vdutta
4c5073ad03 sulu: 1.2.2 2022-09-24 20:31:33 +05:30
vdutta
2660d8ad2e twamp: 1.2.2 2022-09-23 18:23:51 +05:30
vdutta
588478e981 sulu: 1.2.1 2022-09-23 15:59:10 +05:30
Amin Ben Ramdhane
0f9326cff6 bbf: 6.8.34 2022-09-23 10:49:53 +01:00
Jakob Olsson
e01fc47ab6 map-agent: 2.10.3.16 2022-09-23 10:56:05 +02:00
vdutta
a35893a722 sulu: 1.2.0 2022-09-22 20:54:49 +05:30
vdutta
f372cd51b6 obuspa: 6.0.0.1 2022-09-22 16:32:42 +05:30
Grzegorz Bielski
4c227280fb evoice: 0.2.29 SIP INFO DTMF events 2022-09-22 12:02:42 +02:00
Jakob Olsson
13d8a7a607 map-agent: 2.10.3.15 2022-09-22 11:08:31 +02:00
Grzegorz Bielski
8f9afae970 evoice: 0.2.28 play audio file as confirmation of service 2022-09-21 15:00:54 +02:00
Jakob Olsson
079abea853 map-agent: 2.10.3.14 2022-09-21 12:22:16 +02:00
vdutta
83fb67c9a2 icwmp: 9.0.3 2022-09-20 18:52:07 +05:30
suvendhu
2391836769 twamp: 1.2.1 2022-09-20 13:01:22 +00:00
Jakob Olsson
d275e37d3b map-agent: 2.10.3.13 2022-09-20 11:02:22 +02:00
Wenpeng Song
773dc75531 evoice: 0.2.27
Set CallLog.{i}.Alias as "cpe-i" in libvoiceservice, i is the instance of the CallLog object
2022-09-20 07:53:26 +00:00
Amin Ben Ramdhane
a9dbead1b3 bbf: 6.8.33 2022-09-19 16:42:38 +01:00
Anjan Chanda
dd4d6e3d94 wfadatad: 2.10.0.0 2022-09-19 17:06:27 +02:00
Sukru Senli
105fbe6b1f sulu: 1.1.4 2022-09-19 15:36:54 +02:00
Sukru Senli
242a030470 sulu: 1.1.3 2022-09-16 17:19:35 +02:00
vdutta
7babfc6995 swmodd: 2.1.16 2022-09-16 19:53:12 +05:30
Jakob Olsson
b29e32fcb7 map-agent: 2.10.3.12 2022-09-16 16:15:32 +02:00
Sukru Senli
dcd2fb51c7 sulu: 1.1.2 2022-09-16 15:24:50 +02:00
vdutta
69d07fe12b swmodd: 2.1.15 2022-09-16 17:00:00 +05:30
Andreas Gnau
e4acdd529b gryphon-led-module: Do not hardcode BCM SDK kernel version
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-16 11:05:10 +00:00
Amin Ben Ramdhane
5c375c19fc bbf: 6.8.32 2022-09-16 10:02:18 +01:00
vdutta
d00a3d313e swmodd: Fix compilation issue 2022-09-16 14:09:11 +05:30
hemlata
d8e1e75dd1 evoice: Refactoring of the implementation of CallStatus support for Line.X
Get TR-104 call status from SipHandler instead of CallCoord.
2022-09-16 10:06:25 +02:00
Sukru Senli
c1dae8f69f Revert "evoice: add endptmngr as conflict"
This reverts commit c79ff0f80f.
2022-09-16 08:18:20 +02:00
Amin Ben Ramdhane
64f08670b5 bbf: 6.8.31 2022-09-15 22:32:50 +01:00
Andreas Gnau
4890420a25 iop: ssh_upgrade: Use mktemp instead of tempfile
The tempfile has been deprecated for a long time and is no longer
available on RHEL and Fedora, use mktemp instead.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
5c94741584 iop: ssh_upgrade: Update help text
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
9934ee03c6 iop: ssh_upgrade: Fix typos
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
63a2edb417 iop: ssh_upgrade: Adapt to new image filenames
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
9a9bef4935 iop: ssh_upgrade: Update for new sysupgrade-params
sysupgrade CLI has changed over time. Update ssh_upgrade script to
accomodate for those changes.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
0078265697 iop: ssh_upgrade: Use ssh instead of scp
Use SSH with a pipe to transfer the file and invoke sysupgrade in one
go. Using SSH instead of SCP gives a higher throughput (not very
noticable for small files like the ones we use for sysupgrade, though),
but using only one command invocation saves a significant overhead of
TCP and SSH connection setup.

The main reason for this change is though that OpenSSH 9.0 and later
use SFTP instead of the scp protocol when using the scp command in an
effort of deprecating the very clunky legacy SCP protocol. One can use
scp -O to continue using scp, but switching to ssh only has other
benefits outlined above.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
3a7d8b1c51 iop: ssh_upgrade: Don't hardcode subtarget to generic
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
30bfe70fb3 iop: ssh_upgrade: Remove iopu support
iopu has been removed in IOWRT 6 and has never really been supported.
Remove any support for it in the ssh_upgrade helper script.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
Andreas Gnau
243642c35e iop: ssh_upgrade: Fix formatting using shfmt
The file was formatted using a wild mix of tabs and spaces. Run shfmt on
it to fix the formatting

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-15 16:43:55 +00:00
suvendhu
63201030d2 swmodd: Preserve container details on factoryreset
- Added free memory check and disk memory check before installing an oci image
2022-09-15 14:07:29 +00:00
Janusz Dziedzic
ff96e85487 ieee1905: 4.10.7
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-15 12:51:38 +00:00
Jakob Olsson
da24d924a3 map-agent: 2.10.3.11 2022-09-15 14:44:31 +02:00
Grzegorz Sluja
7fce1eda88 endptmngr: Add debug for RTP statistics received from Brcm 2022-09-15 08:17:50 +02:00
Sukru Senli
c79ff0f80f evoice: add endptmngr as conflict 2022-09-14 16:10:30 +02:00
vdutta
3aa34e53bc icwmp: 9.0.2 2022-09-14 19:11:48 +05:30
Jakob Olsson
fd632de0d9 map-agent: 2.10.3.10 2022-09-14 11:44:51 +02:00
vdutta
2df2eb0b9e obuspa: 5.0.0.21 2022-09-14 12:30:37 +05:30
Jakob Olsson
2cc92999a6 map-topology: 2.5.1.4 2022-09-13 12:04:48 +02:00
vdutta
f0bf41c302 icwmp: 9.0.1 2022-09-13 14:14:20 +05:30
vdutta
6972d6d283 bbf: 6.8.30 2022-09-13 14:07:51 +05:30
vdutta
88a2fa13f2 bbf: 6.8.29 2022-09-13 12:17:25 +05:30
vdutta
1756adc4b8 icwmp: 9.0.0 2022-09-13 11:40:31 +05:30
Sukru Senli
4187ed6f9d sulu: 1.1.1 2022-09-12 17:10:13 +02:00
vdutta
ed3c62e3c9 bulkdata: 2.0.5 2022-09-12 12:24:33 +05:30
Amin Ben Ramdhane
4bf4158244 bbf: 6.8.28 2022-09-09 13:42:01 +01:00
Amin Ben Ramdhane
4c95640376 bbf: 6.8.27 2022-09-09 09:41:43 +01:00
Jakob Olsson
7142dd0632 map-agent: 2.10.3.9 2022-09-09 09:54:41 +02:00
Sukru Senli
68f6cbc200 port-management: populate ports from db only if ethernetPortOrder is given 2022-09-09 09:45:42 +02:00
Sukru Senli
68d3ed8556 Revert "port-management: populate ports from db only if ethernetPortOrder is given"
This reverts commit e901bc12ba.
2022-09-09 09:45:31 +02:00
Sukru Senli
e901bc12ba port-management: populate ports from db only if ethernetPortOrder is given 2022-09-09 09:45:17 +02:00
suvendhu
dfc004dc6e swmodd: Remove dependency of lxc autoboot 2022-09-09 11:51:50 +05:30
Yalu Zhang
c6d3812b92 evoice: don't start evoice if endptmngr is installed 2022-09-08 10:41:02 +02:00
Erik Karlsson
574c79ae92 icwmp: fix starting of icwmpd when enabled
When disabling, it is necessary to run start after stop. This will not
actually start icwmpd as there is a condition in start_service but it
is needed for the triggers to be registered. Otherwise, icwmpd will
not start later when enabled.
2022-09-08 06:17:33 +00:00
Amin Ben Ramdhane
8b4f3f97f2 bulkdata: 2.0.4 2022-09-07 19:33:09 +01:00
Amin Ben Ramdhane
69ae0f7bf0 bbf: 6.8.26 2022-09-07 19:25:08 +01:00
Jakob Olsson
28c321f158 map-agent: 2.10.3.8 2022-09-07 18:11:45 +02:00
vdutta
02d7c0f529 icwmp: 8.5.10 2022-09-07 09:19:11 +05:30
Amin Ben Ramdhane
88c28dc57f bbf: 6.8.25 2022-09-06 15:14:18 +01:00
Janusz Dziedzic
b2e2441e7b map-agent: 2.10.3.7
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-06 12:50:02 +00:00
Janusz Dziedzic
d8f85e7acb wifimngr: 14.2.3
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-06 11:02:26 +00:00
Janusz Dziedzic
c8cb95b3ed easy-soc-libs: 6.6.0
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-09-06 11:01:25 +00:00
Filip Matusiak
1b44b25ebd wifimngr: 14.2.2
Signed-off-by: Filip Matusiak <filip.matusiak@iopsys.eu>
2022-09-06 11:13:10 +02:00
Amin Ben Ramdhane
3f23c85333 bbf: 6.8.24 2022-09-05 15:56:32 +01:00
Jakob Olsson
6bfe20624c map-agent: 2.10.3.6 2022-09-05 12:55:21 +02:00
Anjan Chanda
a03eb1aa6a map-topology: add config EASYMESH_VENDOR_EXT_OUI 2022-09-05 12:06:37 +02:00
Anjan Chanda
d7e50ff2ab map-controller: add config EASYMESH_VENDOR_EXT_OUI 2022-09-05 12:06:37 +02:00
Anjan Chanda
9d46a90f65 map-agent: add config EASYMESH_VENDOR_EXT_OUI 2022-09-05 12:06:37 +02:00
vdutta
ea6d08a7e5 skopeo: Fix host dependency 2022-09-05 14:59:56 +05:30
Jakob Olsson
b8ddd40178 map-controller: 2.11.0.4 2022-09-05 11:02:51 +02:00
Jakob Olsson
de59b0b4f2 map-agent: 2.10.3.5 2022-09-05 11:02:00 +02:00
Hemlata Bhatt
fd8e528bf2 evoice :Disable ubus object voice.extension.X 2022-09-02 16:45:24 +02:00
Hemlata
f564df8ccc Disable IncomingMap3 in the default config 2022-09-02 14:39:50 +00:00
Jakob Olsson
c746d2570d map-agent: 2.10.3.4 2022-09-02 13:31:32 +02:00
Filip Matusiak
6f1e638de8 wifimngr: 14.2.1 easy-soc-libs: 6.5.9
Signed-off-by: Filip Matusiak <filip.matusiak@iopsys.eu>
2022-09-02 12:11:17 +02:00
vdutta
f5087667f1 swmodd: 2.1.11 2022-09-02 13:34:58 +05:30
Sukru Senli
2b35f223c1 sulu: 1.1.0 2022-09-01 16:56:12 +02:00
vdutta
f3e9a95442 swmodd: 2.1.10 2022-09-01 19:50:22 +05:30
Jakob Olsson
a7f395b78a map-agent: 2.10.3.3 2022-09-01 16:09:58 +02:00
Jakob Olsson
7f23d16dbe map-agent: 2.10.3.2 2022-09-01 14:27:41 +02:00
nevadita.chatterjee
4bad4e85c4 map-agent: creating /var/run/multiap directory 2022-09-01 11:53:05 +00:00
Jakob Olsson
7db0583db1 map-agent: 2.10.3.1 2022-09-01 12:43:27 +02:00
Jakob Olsson
1a6bdab29e map-controller: 2.11.0.3 2022-09-01 12:41:47 +02:00
Amin Ben Ramdhane
991984e134 bbf: 6.8.23 2022-09-01 10:12:26 +01:00
vdutta
4099551ad2 swmodd: Add support to pull images from registries 2022-09-01 10:56:16 +05:30
Amin Ben Ramdhane
5c654616cf bbf: 6.8.22 2022-08-31 18:12:07 +01:00
Jakob Olsson
1b864150db map-agent: 2.10.3.0 2022-08-31 12:58:14 +02:00
Grzegorz Sluja
6cd2562140 dectmngr: Send CMBS_EV_DEE_CALL_ANSWER to target when the remote party answers an outgoing call 2022-08-30 14:48:21 +02:00
Grzegorz Sluja
083e36f321 endptmngr: Inform dectmngr about answer-call signal from asterisk 2022-08-30 14:43:56 +02:00
vdutta
d4f8c95dea swmodd: Added cgroup mount handler swmodd-cgroup pkg 2022-08-29 19:45:13 +05:30
Hemlata Bhatt
35f978ed06 evoice : Return tr104 compliant parameters in ubus call codecs 2022-08-29 14:07:34 +02:00
Grzegorz Bielski
6595f891c1 evoice: 0.2.24 handle unattended call tranfer 2022-08-29 09:35:58 +02:00
Sukru Senli
bdd7b77952 sulu: 1.0.15 2022-08-26 14:32:44 +02:00
Jakob Olsson
29f63a5b48 wfadatad: 2.8.1.0 2022-08-26 13:43:06 +02:00
vdutta
c904d6097c skopeo: Add skopeo package 2022-08-26 11:24:13 +05:30
Jakob Olsson
1826aeed60 map-agent: 2.10.2.5 2022-08-25 16:52:42 +02:00
Nevadita
e120749b02 map-agent: 2.10.2.4: move multiap platform scripts 2022-08-25 14:52:23 +00:00
Sukru Senli
3c46f47c36 port-management: support getting port speed from device-tree 2022-08-25 09:07:32 +02:00
Amin Ben Ramdhane
2fa416f872 bbf: 6.8.21 2022-08-24 15:03:07 +01:00
vdutta
df014b142a bbf: 6.8.20 2022-08-24 09:09:35 +05:30
Piotr Kubik
073e41c9e3 iop: genconfig: fixes for iopsys-mediatek target 2022-08-23 07:42:21 +00:00
vdutta
02d5148c4d umoci: Add host compilation support 2022-08-23 11:17:18 +05:30
Wenpeng Song
ed96a273a0 evoice: 0.2.22
Fix get/set handlers for CodecProfile.Codec in libvoiceservice
2022-08-22 14:45:13 +00:00
vdutta
a6d4d56922 swmodd: 2.1.7 2022-08-22 10:32:58 +05:30
Amin Ben Ramdhane
c3645ffd3e bbf: 6.8.19 2022-08-19 15:55:40 +01:00
Jani Juvan
f3379af93a iop: genconfig: add iopsys-mediatek target 2022-08-19 16:22:18 +02:00
vdutta
b86771d08f swmodd: Handle OCI containers 2022-08-19 19:17:46 +05:30
Andreas Gnau
d96d43b1a4 iop: genconfig(_min)?: Use target-subtarget-device for iopsys_brcm63xx_arm
Adapt genconfig to generate the correct config after the change to the
target-subtarget-device in target iopsys_brcm63xx_arm in feeds/targets.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-08-19 13:04:41 +00:00
Sukru Senli
5e69f3d66d sulu-builder: align version with sulu 2022-08-19 13:39:01 +02:00
Sukru Senli
193e74d69b sulu-1.0.14 2022-08-19 13:36:13 +02:00
Jakob Olsson
cc4cb1f904 map-agent: 2.10.2.3 2022-08-19 11:45:44 +02:00
Amin Ben Ramdhane
d59a76796f bbf: 6.8.18 2022-08-19 10:05:30 +01:00
Jakob Olsson
dff67bb214 map-agent: 2.10.2.2 2022-08-19 10:59:49 +02:00
vdutta
086c29f1c8 obuspa: Updated Boot event cause 2022-08-19 14:19:09 +05:30
Grzegorz Bielski
07e7f218d2 evoice: handle service codes (busy) 2022-08-19 09:37:30 +02:00
Jakob Olsson
da3facef06 map-agent: 2.10.2.1 2022-08-19 09:31:33 +02:00
Rahul
c6a16aa2a6 urlfilter: update dns transaction id generation 2022-08-19 08:20:03 +05:30
Hemlata Bhatt
913ea35d98 evoice :Fixed the incorrect CallStatus when a 3 way conference turns back to 2 way conversation 2022-08-18 14:08:23 +02:00
Rahul
2405cdd43b ponmngr: resolve nvg boot issue for pon 2022-08-18 15:21:38 +05:30
nevadita.chatterjee
8ada6569f2 map-topology: 2.5.1.3 2022-08-18 14:41:22 +05:30
Rahul
0edd8400e7 ponmngr: configure serial number 2022-08-17 18:14:54 +02:00
Jakob Olsson
e654ea7788 wfa-capi: 1.1.3 2022-08-17 10:21:57 +02:00
Amin Ben Ramdhane
6735d199a0 bbf: 6.8.17 2022-08-17 00:11:37 +01:00
Hemlata Bhatt
2f06fbd258 evoice : Codecs ubus call should use hard coded values instead of from UCI
Those read only parameters for codec capability have been removed from the UCI config.
2022-08-15 15:04:29 +02:00
Jakob Olsson
25220fb547 map-topology: 2.5.1.2 2022-08-15 09:09:22 +02:00
Sukru Senli
30bb56e9bf ponmngr: airoha: procdify airoha pon init and add IOPG prefix to sn 2022-08-12 15:05:25 +02:00
Hemlata Bhatt
e62792d397 evoice : Read codec's name from UCI directly after reformatting /etc/config/voice 2022-08-12 10:31:42 +02:00
Sukru Senli
7f81a5167b ponmngr: add initial airoha support 2022-08-12 08:09:41 +00:00
Hemlata Bhatt
1c3cb6b72a Remove read only parameters from /etc/config/voice 2022-08-12 07:41:10 +00:00
Yalu Zhang
2b0aec400a evoice-0.2.18: Fix a bug that rtpevent can't be generated for outgoing calls 2022-08-11 16:56:23 +02:00
Sukru Senli
4e8f85ffc6 iop: select map agent and controller as modules 2022-08-11 15:01:17 +02:00
vdutta
dd1fc7ff7d obuspa: Fix stomp mtp 2022-08-10 19:35:17 +05:30
Hemlata Bhatt
97ef5bcc7b evoice: Fix some issues in CallStatus 2022-08-09 14:32:06 +02:00
Grzegorz Sluja
976244d57f dectmngr: Release the incoming call if it cannot be proceeded 2022-08-09 12:35:24 +02:00
Grzegorz Sluja
a019ac2c4a endptmngr: Send DECT_UNAVAILABLE event to Asterisk if there is no handset available for an incoming call 2022-08-09 12:35:17 +02:00
Amin Ben Ramdhane
5fff839b53 bbf: 6.8.16 2022-08-08 11:35:20 +01:00
Mattias Barthel
bc21aa4590 Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* e3cefda fdtextract: Add option -z to extract embedded image size
-------------------------------------------------------------------------------
commit e3cefda3b26c9aea3021b20725ce7b31b33eebc4
Author: Mattias Barthel <mattias.barthel@iopsys.eu>
Date: 2022-08-04 15:37:38 +0200

    fdtextract: Add option -z to extract embedded image size

Base directory -> /
 README.md    |  1 +
 fdtextract.c | 47 ++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 45 insertions(+), 3 deletions(-)
-------------------------------------------------------------------------------
2022-08-08 10:15:39 +02:00
Janusz Dziedzic
b4a23934ef map-agent: ts: skip eth name check add wlanX.staY
On DSA platform we could have lan/lanX/wan ports.
Tested on ex400.

Version: 2.10.2.0

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-04 20:14:44 +00:00
Janusz Dziedzic
aa1e866263 easy-soc-libs: 6.5.8
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-04 14:13:58 +00:00
Janusz Dziedzic
677007f613 wifimngr: 14.2.0
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-04 12:14:57 +00:00
Janusz Dziedzic
a25b0672e0 easy-soc-libs: 6.5.7
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-04 12:12:22 +00:00
Amin Ben Ramdhane
d7403f5711 bbf: 6.8.15 2022-08-04 12:31:47 +01:00
Janusz Dziedzic
e6427ae2f8 map-agent: verD: files traffic_separation
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-04 10:04:31 +00:00
Janusz Dziedzic
245dbaacda map-agent: 2.10.1.0
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-04 10:01:35 +00:00
nevadita.chatterjee
0c313fef05 ieee1905: 4.10.6 2022-08-04 12:53:20 +05:30
vdutta
92032fd1ac icwmp: 8.5.9 2022-08-04 11:55:21 +05:30
vdutta
b40c4279fa sulu-builder: Use system login credential for mqtt auth 2022-08-04 11:18:52 +05:30
vdutta
874151f4d3 sulu: Use system login credential for mqtt auth 2022-08-04 11:15:53 +05:30
Yalu Zhang
97f2517211 evoice-0.2.16: Fix some compiling errors and warnings 2022-08-03 16:21:12 +02:00
Grzegorz Sluja
81c30ab502 dectmngr: Release the incoming call if it cannot be proceeded 2022-08-03 11:19:54 +02:00
Grzegorz Sluja
9c9f230054 endptmngr: Send DECT_UNAVAILABLE event to Asterisk if there is no free DECT handset 2022-08-03 11:17:14 +02:00
Janusz Dziedzic
f5f791b0b7 wifimngr: 14.1.0
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-02 15:14:13 +00:00
Janusz Dziedzic
6563c53a63 easy-soc-libs: 6.5.6
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-08-02 15:12:56 +00:00
vdutta
473ea18680 sulu-builder: 1.0.0 2022-08-02 17:48:01 +05:30
Amin Ben Ramdhane
0fcabc3ab5 bbf: 6.8.14 2022-08-01 15:44:58 +01:00
vdutta
183a363c00 icwmp: 8.5.8 2022-08-01 09:33:56 +05:30
Amin Ben Ramdhane
a5d9464b7e bbf: 6.8.13 2022-07-29 16:14:24 +01:00
Maxim Menshikov
f81a48aeaa qosmngr: enable for Econet 2022-07-29 13:52:43 +03:00
Maxim Menshikov
15a68f1807 easy-qos: enable for Econet 2022-07-29 13:52:43 +03:00
Rahul
a59e08e629 qosmngr: update queue setup
Update q setup that allows better coverage of q setup specially in
mixed mode scheduling.
Also remove dead code related to stats since that is already taken
care of by qosmngr daemon now.
And lastly, simplify the logic to calculate q precedence.
2022-07-29 16:20:52 +05:30
Amin Ben Ramdhane
45129bb230 icwmp: 8.5.7 2022-07-28 17:19:32 +01:00
Amin Ben Ramdhane
89123cee31 bbf: 6.8.12 2022-07-28 17:16:26 +01:00
suvendhu
04676cf26b icwmpd: configure dhcp op125 for ManageableDevice DM object 2022-07-28 17:13:35 +01:00
Grzegorz Bielski
76f525ed98 evoice: 0.2.15, add map for FXS params 2022-07-28 13:33:17 +02:00
Grzegorz Sluja
9a02ad5175 dectmngr: Add new dspg FW 4.13 Build17 2022-07-28 10:00:33 +02:00
vdutta
fec2851814 icwmp: 8.5.6 2022-07-27 18:03:03 +05:30
vdutta
aac0616aac uspd: 2.2.14 2022-07-27 09:35:57 +05:30
vdutta
adfc80948c bbf: 6.8.11 2022-07-26 19:56:32 +05:30
vdutta
7107087ba2 icwmp: 8.5.5 2022-07-26 19:53:37 +05:30
vdutta
cfc2d5bb57 uspd: 2.2.13 2022-07-26 19:52:00 +05:30
vdutta
79f65638b1 obuspa: Added restart callback handler for operate commands 2022-07-26 12:16:40 +05:30
Amin Ben Ramdhane
18a28dbec3 uspd: 2.2.12 2022-07-22 13:59:22 +01:00
Jakob Olsson
12254b050b map-controller: 2.11.0.2: add enable_ts uci docs and validator 2022-07-22 10:30:50 +02:00
Omar Kallel
5db896e32a bbf: Add InformParameter object 2022-07-21 17:03:21 +01:00
Jakob Olsson
6e23e2cde5 map-agent: 2.10.0.2 2022-07-21 16:33:09 +02:00
Amin Ben Ramdhane
11d02e4dc6 bbf: 6.8.9 2022-07-21 14:20:10 +01:00
Marek Puzyniak
3a8e56603c easy-sock-libs: 6.5.5
Signed-off-by: Marek Puzyniak <marek.puzyniak@iopsys.eu>
2022-07-21 09:17:10 +00:00
vdutta
558f56017e obuspa: Added persistent db support 2022-07-20 19:17:21 +05:30
Jakob Olsson
17e325ff16 map-agent: 2.10.0.1 2022-07-20 11:17:55 +02:00
Jakob Olsson
abf7e7a8e1 wifimngr: 14.0.9 2022-07-20 11:17:17 +02:00
Jakob Olsson
e2377d482c map-controller: 2.11.0.1 2022-07-20 11:15:33 +02:00
Jakob Olsson
cd9891b0ba ieee1905: 4.10.5 2022-07-19 17:29:43 +02:00
Jakob Olsson
05938b6ddd map-agent: traffic_separation: do network restart if vid mapping is incorrect on reload 2022-07-19 17:29:43 +02:00
vdutta
fbeaed38a1 icwmp: 8.5.3 2022-07-18 19:20:02 +05:30
vdutta
f470be09ff stunc: 1.1.12 2022-07-18 19:17:47 +05:30
vdutta
e306650990 icwmp: 8.5.2 2022-07-18 13:15:30 +05:30
Jakob Olsson
ffca576b3a ieee1905: 4.10.4 2022-07-15 13:51:26 +02:00
Omar Kallel
de19106bb7 icwmp: update icwmp upgrade keep file 2022-07-15 10:08:21 +01:00
Jakob Olsson
fd9193056a map-agent: 2.10.0.0 2022-07-15 10:24:33 +02:00
Jakob Olsson
ec884b9adf map-controller: 2.11.0.0 2022-07-15 10:23:19 +02:00
Erik Karlsson
9aed3b5e63 mosquitto-auth-shadow: initial implementation
Plugin for the mosquitto MQTT broker that allows authentication of
users via /etc/shadow
2022-07-15 04:17:50 +00:00
Wenpeng Song
a231c9f993 evoice: 0.2.14
- 8407: don't subscribe to ip in ValGet
 - 8407: code cleanup
 - Call Stats : TotalCall time remains zero if call is not connected
2022-07-14 15:10:12 +00:00
Wenpeng Song
bee450ea77 evoice: 0.2.13
- 7740: libvoiceservice callcontrol update
 - 8407: do not overwrite ubus context, reformat code
 - 8407: register for correct ubus network.interface paths
2022-07-14 14:43:47 +00:00
Amin Ben Ramdhane
977d6f51f1 icwmp: Migrate the compilation to cmake instead of autotools 2022-07-14 15:02:40 +01:00
Amin Ben Ramdhane
73c40d2b96 bbf: 6.8.8 2022-07-14 14:19:27 +01:00
suvendhu
77d75b2256 icwmp: fix icwmpd infinite restart 2022-07-14 15:35:04 +05:30
Sukru Senli
5ef3575e54 iop: select ip-bridge 2022-07-14 11:37:28 +02:00
Jakob Olsson
1c873d34ea map-controller: 2.10.0.4 2022-07-13 17:47:08 +02:00
Wenpeng Song
ba961a1407 evoice: 0.2.12
- update default UCI config for PrefixInfo
 - 7740: libvoiceservice callcontrol update
 - 8293: refactor service codes
 - 8179: enable call services - always
 - 8262: receive DTMF as RTP 2833
2022-07-13 12:30:09 +00:00
Jakob Olsson
d36930c8ce map-topology: 2.5.1.1 2022-07-13 13:37:36 +02:00
Wenpeng Song
6d6f61ee80 evoice:0.2.11
- 7743: update libvoice pots 
 - Extension and Line statistics: Fixed Regression with Line Ubus Object
2022-07-13 06:56:13 +00:00
Anjan Chanda
9a84f43534 ieee1905: 4.10.3 2022-07-12 16:12:50 +02:00
Jakob Olsson
76070242ff map-topology: 2.5.1.0 2022-07-12 16:05:59 +02:00
vdutta
8c876537e3 icwmp: 8.4.24 2022-07-12 18:59:36 +05:30
Jakob Olsson
34edbde3e1 map-agent: 2.9.0.4 2022-07-12 15:09:26 +02:00
Jakob Olsson
f24366bdf3 map-controller: 2.10.0.3 2022-07-12 15:09:16 +02:00
Jakob Olsson
6840ad8afb map-agent: 2.9.0.3 2022-07-12 15:07:50 +02:00
Jakob Olsson
d923e8bd28 ieee1905: 4.9.9 2022-07-12 15:07:50 +02:00
Hemlata Bhatt
3728f3a143 evoice : Fix for Wrong Number Called,no busy tone fix 2022-07-12 09:19:09 +02:00
vdutta
c00c03f28f icwmp: 8.4.23 2022-07-11 15:51:14 +05:30
Amin Ben Ramdhane
3c3469efbe bbf: 6.8.7 2022-07-08 15:09:42 +01:00
Jakob Olsson
88f1ec5788 ieee1905: add default script setting alid 2022-07-08 13:56:18 +02:00
Hemlata Bhatt
7a1ff2b8d1 evoice : Moving version 0.2.9 2022-07-08 10:56:39 +02:00
Hemlata Bhatt
4b0b880102 evoice : Line and Extension Statistics 2022-07-08 10:50:52 +02:00
Janusz Dziedzic
8654d2ad4b easy-sock-libs: 6.5.4
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-07-07 13:11:28 +00:00
Janusz Dziedzic
050a5d4853 map-agent: multiap skip bssid_ignore
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-07-07 12:01:58 +00:00
Jakob Olsson
07693e7c1b Map-agent: 2.9.0.2 2022-07-06 22:18:59 +02:00
Sukru Senli
60c29e3107 sulu: 1.0.12 2022-07-06 17:09:39 +02:00
Jakob Olsson
615a104b7b map-controller: 2.10.0.2 2022-07-06 16:04:16 +02:00
Jakob Olsson
ab75188733 map-agent: 2.9.0.1 2022-07-06 16:03:48 +02:00
Jakob Olsson
c76daa8c81 ieee1905: 4.9.8 2022-07-06 16:00:53 +02:00
Sukru Senli
796e985d05 sulu: 1.0.11 2022-07-06 10:33:30 +02:00
Jakob Olsson
9bc985e87f easy-soc-libs: 6.5.3 2022-07-05 16:37:55 +02:00
Wenpeng Song
e85e676c65 evoice: libvoice capabilities update
- Update uci file for CapabilitiesCodec
 - Hide parameters that not available
 - Read codecs from ubus call
2022-07-05 10:07:53 +00:00
Grzegorz Bielski
55aa77e670 evoice: fix compilation errors 2022-07-05 10:26:31 +02:00
Grzegorz Bielski
d81b7bd07b evoice: fix compilation error after env upgrade - Broadcom 2022-07-05 08:07:29 +02:00
Sukru Senli
6add41b654 iop: select procd-ujail as module
until DHCP issue when dnsmasq is jailed is resolved
2022-07-03 09:34:26 +02:00
Jakob Olsson
e5933d2938 map-agent: simplify pvid unset default script 2022-07-01 16:59:11 +02:00
Jakob Olsson
8b4e7586ad map-agent: add uci-default script setting pvid to 0 2022-07-01 16:36:45 +02:00
Wenpeng Song
d70c637aa4 bbf: fix voice calllog filter
Fix the SIP response code handling and optimization
2022-07-01 13:35:31 +00:00
Andreas Gnau
c296cc2963 iop: config: Use fw3 (firewall3) and legacy iptables
OpenWrt 22.03 switched to a new nftables-based firewall, fw4. For now,
we would like to stick to legacy iptables and the old fw3 which, for
now, is still supported.

Once functionality has been verified on non-upstream targets such as
Broadcom and Airoha/Econet, we can switch to nftables and fw4.

Unfortunately, luci-app-firewall pulls in fw4, so we need to disable it
for now until we have investigated and resolved that problem.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-07-01 08:48:32 +02:00
Andreas Gnau
721fcb8b38 ieee1905 / map-* / wfadatad: Add -Wno-error=deprecated-declarations
Fixes error: 'uloop_timeout_remaining' is deprecated: use
uloop_timeout_remaining64 [-Werror=deprecated-declarations].

For now, compile with -Wno-error=deprecated-declarations until we have
found a nice way to support both uloop-versions or we have decided that
we only support OpenWrt 23.03.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-07-01 08:48:32 +02:00
Andreas Gnau
e26a9affbd iop: feeds_update: Workaround OpenWrt bug wrt targets
Workaround a bug in the OpenWrt build system that was introduced when
the installed target path had been moved to target/linux/feeds.
Config.in and Makefile from installed targets are not properly included
from the new location. This hack is to be removed once the issues are
fixed.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-07-01 08:48:32 +02:00
Andreas Gnau
f009a030a8 iop: genconfig: Update target paths for OpenWrt 22.03
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-07-01 08:48:30 +02:00
Sukru Senli
17ba40e8f6 iop: config: select dnsmasq explicitly 2022-06-30 16:12:51 +02:00
Grzegorz Bielski
495df7354d evoice: recognize properly RTCP packets 2022-06-30 15:29:45 +02:00
Jakob Olsson
f012724dc5 ieee1905: 4.9.7 2022-06-30 14:24:01 +02:00
Amin Ben Ramdhane
ee77040781 bbf: 6.8.6 2022-06-30 09:02:31 +01:00
Sukru Senli
e04a463e62 iop: config: select map agent and controller by default 2022-06-29 19:21:08 +02:00
Anjan Chanda
180d8d1168 easy-soc-libs: 6.5.2 2022-06-29 17:34:48 +02:00
Maxim Menshikov
2af7a8d044 easy-soc-libs: support Econet in building and packaging scripts 2022-06-29 15:29:22 +00:00
vdutta
5a6126270e icwmp: 8.4.22 2022-06-29 20:54:14 +05:30
Jakob Olsson
488c89a6d1 ieee1905: 4.9.6 2022-06-29 16:46:05 +02:00
Hemlata Bhatt
ca5d16257a Evoice : Support status for Line and SIP.Client objects 2022-06-29 14:33:00 +02:00
Grzegorz Bielski
07b1902fe2 evoice: fix call hold for Broadcom 2022-06-29 11:54:36 +02:00
Sukru Senli
bcfe608301 dectmngr: correct version 2022-06-28 19:05:50 +02:00
Amin Ben Ramdhane
63f448f4a8 bbf: 6.8.5 2022-06-28 17:04:19 +01:00
Grzegorz Sluja
5438c3c5da dectmngr: fixup! Fix for setting extension_id for handset 2022-06-28 15:37:54 +02:00
Yalu Zhang
111ff9835a Update feed iopsys package evoice
evoice-0.2.7: Fix a package installation issue
2022-06-28 15:03:13 +02:00
Yalu Zhang
7cc4c33911 evoice-0.2.6: Fix compiling errors on Econet platform 2022-06-28 14:27:53 +02:00
Jakob Olsson
c61723b711 map-topology: 2.5.0.6 2022-06-28 14:15:17 +02:00
Amin Ben Ramdhane
c065b8e819 bbf: 6.8.4 2022-06-28 11:07:16 +01:00
Amin Ben Ramdhane
885b7ff1eb icwmp: 8.4.21 2022-06-28 11:04:46 +01:00
Andreas Gnau
ffd9ad17e2 Update feed [ iopsys ] package [ dectmngr ]
-------------------------------------------------------------------------------
* ffda80f Makefile: Add -fcommon to CFLAGS
* 0c66498 Fix compilation with 64-bit time_t
* a7b0f52 Fix inconsistent/misleading indentation
* a8d2418 ListAccess sqlite: Ignore false return-local-addr warning
-------------------------------------------------------------------------------
commit ffda80f40b5703f07570a2892522d5dded84b63a
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2022-06-28 08:11:28 +0000

    Makefile: Add -fcommon to CFLAGS

Base directory -> /
 app/Makefile | 5 +++++
 1 file changed, 5 insertions(+)
-------------------------------------------------------------------------------
commit 0c6649890007e457e4df8cf41961798dde018cb8
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2022-06-28 08:04:03 +0000

    Fix compilation with 64-bit time_t

Base directory -> /
 app/ListAccess/ListsApp.c | 13 +++++++------
 app/tcx_hostlog.c         |  9 +++++----
 app/tcx_log.c             |  5 +++--
 3 files changed, 15 insertions(+), 12 deletions(-)
-------------------------------------------------------------------------------
commit a7b0f52f7f3d2f18d7723fa6cf581572d718f382
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2022-06-28 07:57:18 +0000

    Fix inconsistent/misleading indentation

Base directory -> /
 app/appcmbs/appcmbs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit a8d24182c0d58eb72ce1adde5e0ef903c381a11e
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2022-06-28 07:48:12 +0000

    ListAccess sqlite: Ignore false return-local-addr warning

Base directory -> /
 app/ListAccess/sqlite3.c | 3 +++
 1 file changed, 3 insertions(+)
-------------------------------------------------------------------------------
2022-06-28 11:27:47 +02:00
Yalu Zhang
051da80708 Update package evoice
Fix link errors due to Broadcom SDK version lift
2022-06-28 10:52:23 +02:00
Andreas Gnau
56aff208ba ieee1905: 4.9.4 2022-06-28 09:43:57 +02:00
Amin Ben Ramdhane
1c65f4f321 icwmp: regenerate ssl link in boot() 2022-06-27 21:22:31 +01:00
Andreas Gnau
b2755d8586 Update feed [ iopsys ] package [ endptmngr ]
-------------------------------------------------------------------------------
* 7d43e47 Fix compilation with -fno-common
-------------------------------------------------------------------------------
commit 7d43e471f0ffc4a54eb2ac35eced4b72fca4dafb
Author: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: 2022-06-27 08:08:40 +0000

    Fix compilation with -fno-common

Base directory -> /
 src/connection.c | 2 ++
 src/connection.h | 2 +-
 src/line.c       | 3 +++
 src/line.h       | 4 ++--
 4 files changed, 8 insertions(+), 3 deletions(-)
-------------------------------------------------------------------------------
2022-06-27 17:10:53 +02:00
Amin Ben Ramdhane
9618a41d25 bbf: 6.8.2 2022-06-27 15:22:56 +01:00
Maxim Menshikov
61eaa026a2 easy-soc-libs: use MAC80211 for iopsys_ramips 2022-06-27 12:57:52 +00:00
Maxim Menshikov
9ec67031b3 easy-soc-libs: add WIFI_TYPE option in addition to PLATFORM to differentiate SoC and WiFi implementation 2022-06-27 12:57:52 +00:00
Hemlata Bhatt
acc9158c33 Evoice : Fix some issues related to RINGING UBUS event generation
- Don't generate RINGING for ringback tone playing
    - Generate RINGING when hanging up while having a held call
2022-06-27 10:05:43 +02:00
vdutta
827f47e4db bbf: 6.8.1 2022-06-24 13:16:03 +05:30
Grzegorz Sluja
e3eacc0ba8 dectmngr: Fix for setting extension_id for handset 2022-06-24 09:26:26 +02:00
vdutta
ed9437058e icwmp: 8.4.20 2022-06-24 12:36:03 +05:30
vdutta
191c284d97 obuspa: 5.0.0.16 2022-06-24 12:32:25 +05:30
vdutta
dba98d50f7 uspd: Move TransferComplete event to obuspa 2022-06-24 11:44:45 +05:30
vdutta
7cf6c6f068 inbd: Fix static code analysis warnings 2022-06-24 00:08:59 +02:00
Yalu Zhang
f6f20450a6 evoice-0.2.5: Support configuration of receive/transmit gain and echo cancellation on Broadcom platform 2022-06-23 18:10:39 +02:00
Jakob Olsson
a003467b00 map-controller: 2.10.0.1 2022-06-23 17:06:41 +02:00
Andreas Gnau
26b3432f9a iop: feeds_update: Reformat with shfmt
The file was indented with a mix of spaces and tabs. Unify formating by
running shfmt on the file.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-06-23 10:39:03 +00:00
Jakob Olsson
f20c7ffb24 map-agent: traffic_separation: reload netifd by ubus call uci commit 2022-06-23 12:04:17 +02:00
vdutta
9a16c6d418 obuspa: 5.0.0.15 2022-06-23 15:25:41 +05:30
vdutta
3033462d89 icwmp: 8.4.19 2022-06-23 15:13:54 +05:30
Amin Ben Ramdhane
fe126b0de0 bbf: 6.8.0 2022-06-23 10:22:11 +01:00
Amin Ben Ramdhane
c64586ead5 bbf: 6.7.9 2022-06-22 19:58:56 +01:00
vdutta
63f1addeea obuspa: Added option to verify the mqtt received topic 2022-06-22 14:06:15 +00:00
Jakob Olsson
1bbd034a73 map-topology: 2.5.0.5 2022-06-22 13:48:43 +02:00
vdutta
8dd1190033 icwmp: 8.4.18 2022-06-22 10:37:46 +05:30
suvendhu
f3443ca88a icwmp: 8.4.17 2022-06-22 04:37:49 +00:00
Amin Ben Ramdhane
ff0a886664 periodicstats: 1.2.0 2022-06-21 16:59:01 +01:00
Grzegorz Sluja
8ab7956b95 Update package endptmngr
c099d6b Return to the first call without playing any tones on DECT handset when the second call ends
4ff7042 Add .gitignore
2022-06-21 14:25:35 +02:00
Hemlata Bhatt
e261a216b3 Evoice :Fix a bug for Call Hold event generation 2022-06-20 16:07:11 +02:00
Jakob Olsson
8b6fb31b63 map-controller: 2.10.0.0 2022-06-17 15:08:48 +02:00
Bartlomiej Grzeskowiak
465b8e36fc iopsys-econet: Switch en7562 to device model build
Add necessary define to config. Enbale image-install build target.

Signed-off-by: Bartlomiej Grzeskowiak <bartlomiej.grzeskowiak@iopsys.eu>
2022-06-17 11:08:31 +00:00
Jakob Olsson
af9f09493d map-agent: 2.9.0.0 2022-06-17 11:28:52 +02:00
Stanislaw Gruszka
127f9e867d map-agent: ts: reload firewall 2022-06-17 11:21:11 +02:00
Stanislaw Gruszka
8b493581e1 map-agent: ts: configure firewall 2022-06-17 11:21:11 +02:00
Stanislaw Gruszka
65edb4ab06 map-agent: traffic separation script rework 2022-06-17 11:21:11 +02:00
Amin Ben Ramdhane
6ce65b0160 bbf: 6.7.8 2022-06-16 14:13:29 +01:00
vdutta
4e5eaad00d obuspa: 5.0.0.13 2022-06-16 17:13:26 +05:30
vdutta
a11151fdd9 obuspa: 5.0.0.12 2022-06-15 20:29:14 +05:30
vdutta
bd4bfd211b urlfilter: 1.1.3 2022-06-15 17:54:08 +05:30
vdutta
8d624c4951 bbf: 6.7.7 2022-06-15 17:44:46 +05:30
Grzegorz Sluja
f5dd4c185f endptmngr: Fixes for call waiting and 3way call scenarios 2022-06-15 08:59:12 +02:00
Jakob Olsson
8e1fc7dcb0 map-agent: add missing uci validation and new cfg option to default 2022-06-14 15:13:36 +02:00
vdutta
f8a0d6e54b bbf: 6.7.6 2022-06-14 18:01:34 +05:30
vdutta
2fd02bac1d icwmp: 8.4.16 2022-06-14 17:58:39 +05:30
Janusz Dziedzic
8ccf13aca4 Add 6GHz support for
- ieee1905
 - easy-soc-libs
 - wifimngr
 - map-agent
 - map-controller

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-06-14 08:14:26 +00:00
Jakob Olsson
b21bc6c919 map-topology: 2.5.0.4 2022-06-14 09:50:27 +02:00
Jakob Olsson
ba537e82cc map-agent: 2.8.1.2 2022-06-13 17:35:08 +02:00
Jakob Olsson
0c8654a3b9 map-agent: 2.8.1.1 2022-06-13 17:20:35 +02:00
Jakob Olsson
ac019660bd map-agent: 2.8.1.0 2022-06-13 17:05:20 +02:00
Jakob Olsson
a3ccf301ca map-agent: multiap: manage wpa_supplicant bssid_ignore 2022-06-13 17:05:20 +02:00
Jakob Olsson
a4f8dfe53e map-agent: multiap: introduce func to clear bssid of all bstas 2022-06-13 17:05:20 +02:00
vdutta
853ba5bb3e bbf: 6.7.5 2022-06-10 20:14:39 +05:30
vdutta
a06fe38ed8 uspd: 2.2.10 2022-06-10 20:11:18 +05:30
vdutta
223461213e icwmp: 8.4.15 2022-06-10 18:44:27 +05:30
Jakob Olsson
f5526d0a25 map-topology: 2.5.0.3 2022-06-10 10:52:07 +02:00
Amin Ben Ramdhane
d551173c68 bbf: 6.7.5 2022-06-09 12:21:47 +01:00
Amit Kumar
26a3790bbd 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 12:57:03 +05:30
Amin Ben Ramdhane
755442556d uspd: 2.2.9 2022-06-08 18:12:51 +01:00
Amin Ben Ramdhane
164e9f21c9 bbf: 6.7.3 2022-06-08 18:11:08 +01:00
Grzegorz Sluja
9a5643cf43 dectmngr: Fix scenario when active call hangs up and return to onhold call 2022-06-08 16:34:31 +02:00
vdutta
671e8189c0 urlfilter: 1.1.2 2022-06-08 20:02:36 +05:30
vdutta
c31158a7ad bbf: 6.7.2 2022-06-08 09:31:41 +05:30
Sukru Senli
9e46a57443 sulu: 1.0.10 2022-06-07 19:59:42 +02:00
vdutta
161cd71da8 bbf: 6.7.1 2022-06-07 21:46:42 +05:30
vdutta
1b6126456b icwmp: 8.4.14 2022-06-07 20:48:22 +05:30
vdutta
f69864554a stunc: 1.1.11 2022-06-07 19:10:16 +05:30
vdutta
61a5751e0b bbf: 6.7.0 2022-06-07 10:41:33 +05:30
Vivek Kumar Dutta
78d3dfec15 Revert "bbf: 7.0.0"
This reverts commit f5ed3a7ff1
2022-06-07 05:06:51 +00:00
Amin Ben Ramdhane
f5ed3a7ff1 bbf: 7.0.0 2022-06-06 19:37:10 +01:00
Amin Ben Ramdhane
681041b7c3 bbf: compile using cmake instead of autotools 2022-06-06 19:34:43 +01:00
vdutta
264e1daf5c uspd: 2.2.8 2022-06-06 19:41:31 +05:30
vdutta
c19ee4f050 stunc: 1.1.10 2022-06-06 19:39:00 +05:30
vdutta
d225c215ee icwmp: 8.4.13 2022-06-06 19:36:03 +05:30
vdutta
adcba33657 bbf: 6.6.45 2022-06-06 19:33:12 +05:30
Jakob Olsson
29ec062b90 map-topology: 2.5.0.2 2022-06-03 17:09:33 +02:00
Grzegorz Sluja
4feecbd438 Update package dectmngr
a2fe770 Dectmngr fixes for call waiting and 3way call
0d7d2b3 Improvements for handset status update
2022-06-03 13:27:30 +02:00
Grzegorz Sluja
525f5c11b0 endptmngr: Support call waiting and 3 way call for DECT 2022-06-03 13:26:15 +02:00
Rahul
d9800428c0 Revert "qos: Avoid stats to be reseted on qos reload"
This reverts commit 3eb4b07880.
2022-06-03 14:35:53 +05:30
Jakob Olsson
339ff22025 map-agent: 2.8.0.5 2022-06-03 09:37:07 +02:00
Hemlata Bhatt
4d94374162 evoice : Fixed a bug that some UBUS events not being generated correctly 2022-06-02 16:51:41 +02:00
Jakob Olsson
4b1cc22250 map-agent: 2.8.0.4 2022-06-02 15:16:51 +02:00
Amin Ben Ramdhane
fcdd71177b bbf: 6.6.44 2022-06-02 13:35:05 +01:00
Jakob Olsson
d100832548 wfadatad: 2.8.0.1 2022-06-02 09:59:56 +02:00
Arun Muthusamy
3eb4b07880 qos: Avoid stats to be reseted on qos reload 2022-06-02 06:13:27 +00:00
Jakob Olsson
6214cbb4e7 map-topology: 2.5.0.1 2022-06-01 11:15:23 +02:00
Jakob Olsson
e183005a9f map-controller: 2.7.0.1 2022-06-01 10:17:43 +02:00
Jakob Olsson
960d44942c map-agent: 2.8.0.3 2022-05-31 15:59:04 +02:00
Wenpeng Song
d2aca948fb evoice: update config file
remove /etc/evoice/voicecap
2022-05-31 13:45:51 +00:00
Wenpeng Song
bf9b057ef3 evoice: libvoiceservice CodecProfile update 2022-05-31 13:35:17 +00:00
Wenpeng Song
703105b4cf evoice: Add service_triggers() in the init script to reload service after uci commit 2022-05-31 13:31:06 +00:00
Yalu Zhang
99dd785dfd 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:59:15 +02:00
Wenpeng Song
9f02022353 evoice: libvoiceservice VoIPProfile update 2022-05-31 10:59:46 +02:00
Jakob Olsson
6bcd934ab3 map-agent: 2.8.0.2 2022-05-31 09:52:29 +02:00
Jakob Olsson
1888c1ead8 map-agent: 2.8.0.1 2022-05-31 09:52:25 +02:00
Sukru Senli
6557ba4cd6 wfadatad: 2.8.0.0 with new license update 2022-05-30 14:40:38 +02:00
Sukru Senli
db998e69e3 map-controller: 2.7.0.0 with new license update 2022-05-30 14:33:32 +02:00
vdutta
e9d563ce03 usp-js: Fix install paths 2022-05-30 17:54:25 +05:30
vdutta
b33a390839 usp-js: Added nodejs variant 2022-05-30 17:21:13 +05:30
Sukru Senli
53f80fbf10 map-agent: 2.8.0.0 with new license update 2022-05-30 13:28:07 +02:00
Sukru Senli
96fc14c22f map-topology: 2.5.0.0 with new license update 2022-05-30 13:23:58 +02:00
Sukru Senli
476a593656 multi-ap modules licensed BSD-3-Clause 2022-05-30 13:09:53 +02:00
suvendhu
dd9b7a8774 twamp: 1.2.0 2022-05-30 09:23:24 +00:00
Jakob Olsson
3f214bb959 map-agent: 2.7.2.6 2022-05-30 11:02:28 +02:00
Sukru Senli
f02b097ba3 usp-js: add license 2022-05-28 18:38:04 +02:00
Sukru Senli
431d29733d smwodd: add license 2022-05-28 18:34:26 +02:00
Sukru Senli
352f1d0cbc ated: remove unused package 2022-05-28 18:13:36 +02:00
Sukru Senli
4fde49b43a evoice: update PKG_LICENSE 2022-05-28 18:10:05 +02:00
Sukru Senli
a4576e43e9 map-topology: correct license 2022-05-28 18:06:13 +02:00
Sukru Senli
6d7a8e5417 shflags: remove unused package 2022-05-28 17:56:46 +02:00
Sukru Senli
d05c0fa6e3 libmicroxml: remove unused package 2022-05-28 17:54:35 +02:00
Grzegorz Bielski
02b3f1d091 evoice: use hw.board.VoiceDSP 2022-05-27 16:11:28 +02:00
Sukru Senli
759a12b759 sulu: 1.0.9 2022-05-27 15:32:16 +02:00
Sukru Senli
4f7c30f13a evoice: dependency fixes 2022-05-27 15:13:42 +02:00
Grzegorz Bielski
902b3bb8bc evoice: 0.2.3 2022-05-27 15:10:19 +02:00
vdutta
ece17326c8 bbf: 6.6.43 2022-05-26 18:54:48 +05:30
Grzegorz Bielski
497d17dafc evoice: add tones.ini for Mediatek platform 2022-05-26 14:10:50 +02:00
Sukru Senli
36ef73caaa sulu: 1.0.8 2022-05-25 17:09:06 +02:00
vdutta
6142d82806 bbf: 6.6.42 2022-05-25 20:09:52 +05:30
Jakob Olsson
adf314079b map-agent: 2.7.2.5 2022-05-25 16:32:19 +02:00
sverma
036e57ac4e wfadatad: 2.7.0.7 2022-05-25 19:41:07 +05:30
vdutta
f2393cd8f1 icwmp: 8.4.12 2022-05-25 19:39:25 +05:30
Sukru Senli
ae91e016f5 sulu: 1.0.7 2022-05-25 15:33:50 +02:00
vdutta
1adfc0815f swmodd: 2.1.5 2022-05-25 18:15:27 +05:30
vdutta
acdf50d88d questd: 5.2.4 2022-05-25 18:08:48 +05:30
vdutta
30804d3556 rulengd: 1.2.7 2022-05-25 16:48:14 +05:30
Jakob Olsson
5307d393f6 ieee1905: 4.9.2 2022-05-25 12:41:29 +02:00
vdutta
75a6c7479c bbf: 6.6.41 2022-05-24 19:17:51 +05:30
vdutta
8c20ef4ec7 bbf: Heartbeat support 2022-05-24 19:11:06 +05:30
vdutta
98bebf3da1 icwmp: Heartbeat support 2022-05-24 19:09:53 +05:30
Wenpeng Song
4d8d09523e eVoice: Fix some issues in libvoiceservice for VoiceServices.{i}.SIP. 2022-05-24 08:22:28 +00:00
vdutta
0b5a69bc31 bbf: 6.6.39 2022-05-24 11:57:01 +05:30
vdutta
641f9eaad2 swmodd: 2.1.4 2022-05-24 11:52:14 +05:30
Hemlata Bhatt
269b13e868 Provide UBUS events and objects 2022-05-23 19:51:17 +02:00
nevadita.chatterjee
b96a5d307f map-topology:2.4.0.5 2022-05-23 16:16:02 +05:30
Sukru Senli
cb25e6708d sulu: 1.0.6 2022-05-23 11:40:34 +02:00
Sukru Senli
60e3c70e57 sulu: 1.0.5 2022-05-20 15:44:21 +02:00
Jakob Olsson
e0ba2b94dd map-topology: 2.4.0.4 2022-05-20 13:09:53 +02:00
Grzegorz Bielski
559c1996b9 evoice: update libvoiceservice 2022-05-20 09:49:21 +02:00
vdutta
33d951b0ec periodicstats: 1.1.3 2022-05-20 10:09:18 +05:30
vdutta
c270d3cf09 icwmp: 8.4.10 2022-05-20 08:40:33 +05:30
Jakob Olsson
00a687cd4a map-topology: 2.4.0.3 2022-05-19 14:52:38 +02:00
Jakob Olsson
24ecfe7f34 ieee1905: 4.9.1 2022-05-19 14:52:38 +02:00
Jakob Olsson
b5ff544f79 wfadatad: 2.7.0.6 2022-05-19 14:52:38 +02:00
Jakob Olsson
d3153244e4 map-topology: 2.4.0.2 2022-05-19 14:52:38 +02:00
Grzegorz Bielski
2227c01289 evoice: compile libvoiceservice 2022-05-19 12:40:15 +02:00
Piotr Kubik
f0407b8a37 gryphon-led-module: Update toolchains for new arch 'armsfp' 2022-05-19 12:20:15 +02:00
Amin Ben Ramdhane
62935f5016 bbf: 6.6.38 2022-05-18 16:47:26 +01:00
Amin Ben Ramdhane
3b7b6fd627 udpecho: 2.0.1 2022-05-18 16:45:21 +01:00
vdutta
d68a6add62 icwmp: 8.4.9 2022-05-18 21:05:22 +05:30
vdutta
12b6a72a48 stunc: 1.1.9 2022-05-18 20:57:22 +05:30
Jakob Olsson
812fad8c5b map-agent: 2.7.2.4 2022-05-18 14:54:14 +02:00
Jakob Olsson
0a4f296858 map-agent: multiap: lock operations on backhaul file 2022-05-18 10:32:46 +02:00
Amit KUmar
62d3efd67e map-topology: per host statistics collection
included conntrack netfilter library
2022-05-18 13:54:22 +05:30
Jakob Olsson
e6780b20fb map: prepend all multiap packages version number with the supported revision 2022-05-17 15:11:40 +02:00
Jakob Olsson
84af7641ec map-agent: 7.2.3 2022-05-17 15:07:59 +02:00
Amit KUmar
a0195bf457 qosmngr: WRR schdeuling configuration
sequence corrected in initialization as first tm initialization
then delcfg. porttminit bydefault does queue configuration as SP.
2022-05-17 11:38:59 +00:00
Jakob Olsson
17ba9d0d6f map-controller: 6.0.22 2022-05-17 13:09:30 +02:00
Grzegorz Bielski
71963c914f evoice: bring back TARGET_PLATFORM, remove conditionals during install 2022-05-17 12:11:01 +02:00
Grzegorz Bielski
374892c869 evoice: handle Econet and Broadcom targets 2022-05-17 10:38:50 +02:00
Amin Ben Ramdhane
af5a788d3e bbf: 6.6.37 2022-05-16 20:27:35 +01:00
Andreas Gnau
36f4a69b2e Update feed [ iopsys ] package [ easy-soc-libs ]
-------------------------------------------------------------------------------
* 9d8ca7d rdpa: Fix data types for SDK 5.04L04
* 34d925c libwifi: extend struct wifi_phytype
-------------------------------------------------------------------------------
commit 9d8ca7d62108dd4e47ad338b9a7f6fc651b55563
Author: Piotr Kubik <piotr.kubik@iopsys.eu>
Date: 2022-05-10 11:44:34 +0200

    rdpa: Fix data types for SDK 5.04L04

Base directory -> /
 libqos/broadcom/include/rdpa/bdmf_data_types.h | 2 ++
 libqos/broadcom/include/rdpa/rdpa_drv.h        | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit 34d925c4db0eb581c424bc51333d92999e7401d8
Author: Anjan Chanda <anjan.chanda@iopsys.eu>
Date: 2022-05-06 11:09:26 +0200

    libwifi: extend struct wifi_phytype

Base directory -> /
 libwifi/VERSION.txt | 2 +-
 libwifi/wifi.h      | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
2022-05-16 21:24:33 +02:00
Piotr Kubik
214bb6939f endptmngr: Update Broadcom SDK 5.04 version 2022-05-16 19:56:24 +02:00
162 changed files with 8308 additions and 4148 deletions

View File

@@ -1,78 +0,0 @@
#
# Copyright (C) 2019 iopsys Software Solutions AB. All rights reserved.
#
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# version 2 as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ated
PKG_VERSION:=1.2.2
PKG_RELEASE:=1
PKG_SOURCE_VERSION:=f614cba983d827d5185c60a6a5a35530621d44d2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/mediatek/ated.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
# support parallel build
#PKG_BUILD_PARALLEL:=1
#re create configure scripts if not present.
#PKG_FIXUP:=autoreconf
# run install target when cross compiling. basically, make install DESTDIR=$(PKG_INSTALL_DIR)
# this way we don't need to pick out the resulting files from the build dir.
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/ated
CATEGORY:=Utilities
TITLE:=Daemon for handling wifi calibration
URL:=
DEPENDS:= libc
endef
define Package/ated/description
Daemon for handling wifi calibration
endef
#TARGET_CFLAGS += -I$(LINUX_DIR)/include -I$(LINUX_DIR)/arch/mips/include
MAKE_FLAGS += \
v=2 \
m=3
#TARGET_CPPFLAGS := \
# -I$(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx \
# -I$(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx \
# $(TARGET_CPPFLAGS)
# we donot wwant to have any install.
define Build/Install/Default
endef
define Package/ated/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ated $(1)/sbin/
endef
$(eval $(call BuildPackage,ated))

View File

@@ -25,3 +25,7 @@ config BBFDM_ENABLE_JSON_PLUGIN
config BBFDM_ENABLE_DOTSO_PLUGIN
bool "Enable shared library plugin to extend datamodel"
default y
config BBF_MAX_OBJECT_INSTANCES
int "Maximum number of instances per object"
default 255

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm
PKG_VERSION:=6.6.36
PKG_VERSION:=6.8.3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_VERSION:=180119192418dbac64713c3e5efe761a1f8e871e
PKG_SOURCE_VERSION:=09c6514c41e0407f5ac52c10db200f5c8942f9e1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -18,14 +18,15 @@ PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=LICENSE
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/libbbf_api
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=Library for libbbfdm API
TITLE:=BBF datamodel library, provides API to extend datamodel using DotSO plugins
ABI_VERSION:=1.0
endef
define Package/libbbfdm/default
@@ -33,7 +34,7 @@ define Package/libbbfdm/default
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=Library for broadband forum data model support
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libcurl
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libcurl +libbbf_api
endef
define Package/libbbfdm
@@ -66,6 +67,17 @@ define Package/libbbfdm-wolfssl
VARIANT:=wolfssl
endef
define Package/userinterface
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=Package to add Device.UserInterface. datamodel support
endef
define Package/userinterface/description
Package to add Device.UserInterface. datamodel support using libbbf JSON Plugin
endef
define Package/libbbfdm/config
source "$(SOURCE)/Config_bbfdm.in"
endef
@@ -85,56 +97,50 @@ define Build/Prepare
endef
endif
TARGET_CFLAGS += \
-D_GNU_SOURCE \
-Wall -Werror \
CONFIGURE_ARGS += \
--enable-tr181
CMAKE_OPTIONS += \
-DBBF_TR181=ON
ifeq ($(CONFIG_BBF_TR104),y)
CONFIGURE_ARGS += \
--enable-tr104
CMAKE_OPTIONS += \
-DBBF_TR104=ON
endif
ifeq ($(CONFIG_BBF_TR143),y)
CONFIGURE_ARGS += \
--enable-tr143
CMAKE_OPTIONS += \
-DBBF_TR143=ON
endif
ifeq ($(CONFIG_BBF_VENDOR_EXTENSION),y)
CONFIGURE_ARGS += \
--enable-vendor-extension
CMAKE_OPTIONS += \
-DBBF_VENDOR_EXTENSION=ON
CONFIGURE_ARGS += \
BBF_VENDOR_LIST="$(CONFIG_BBF_VENDOR_LIST)" \
BBF_VENDOR_PREFIX="$(CONFIG_BBF_VENDOR_PREFIX)"
CMAKE_OPTIONS += \
-DBBF_VENDOR_LIST:String="$(CONFIG_BBF_VENDOR_LIST)" \
-DBBF_VENDOR_PREFIX:String="$(CONFIG_BBF_VENDOR_PREFIX)" \
-DBBF_MAX_OBJECT_INSTANCES:Integer=$(CONFIG_BBF_MAX_OBJECT_INSTANCES)
endif ##CONFIG_BBF_VENDOR_EXTENSION
ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y)
CONFIGURE_ARGS += \
--enable-json-plugin
CMAKE_OPTIONS += \
-DBBF_JSON_PLUGIN=ON
endif
ifeq ($(CONFIG_BBFDM_ENABLE_DOTSO_PLUGIN),y)
CONFIGURE_ARGS += \
--enable-shared-library
CMAKE_OPTIONS += \
-DBBF_DOTSO_PLUGIN=ON
endif
ifeq ($(BUILD_VARIANT),openssl)
CONFIGURE_ARGS += --enable-libopenssl
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
CMAKE_OPTIONS += -DWITH_OPENSSL=ON
endif
ifeq ($(BUILD_VARIANT),wolfssl)
CONFIGURE_ARGS += --enable-libwolfssl
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
CMAKE_OPTIONS += -DWITH_WOLFSSL=ON
endif
ifeq ($(BUILD_VARIANT),mbedtls)
CONFIGURE_ARGS += --enable-libmbedtls
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
CMAKE_OPTIONS += -DWITH_MBEDTLS=ON
endif
define Package/libbbf_api/install
@@ -143,13 +149,15 @@ endef
define Package/libbbfdm/default/install
$(INSTALL_DIR) $(1)/lib
$(INSTALL_DIR) $(1)/usr/share/bbfdm
$(INSTALL_DIR) $(1)/etc/bbfdm
$(INSTALL_DIR) $(1)/etc/bbfdm/dmmap
$(INSTALL_DIR) $(1)/etc/bbfdm/json
$(INSTALL_DIR) $(1)/usr/share/bbfdm
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(CP) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.so* $(1)/lib/
$(INSTALL_DIR) $(1)/usr/libexec/rpcd
$(CP) $(PKG_BUILD_DIR)/libbbfdm.so $(1)/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/* $(1)/usr/share/bbfdm
$(LN) /usr/share/bbfdm/bbf.diag $(1)/usr/libexec/rpcd/bbf.diag
endef
define Package/libbbfdm/default/prerm
@@ -158,6 +166,18 @@ define Package/libbbfdm/default/prerm
exit 0
endef
define Package/userinterface/install
$(INSTALL_DIR) $(1)/etc/bbfdm/json
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DATA) ./files/etc/bbfdm/json/UserInterface.json $(1)/etc/bbfdm/json/
$(INSTALL_DATA) ./files/etc/config/userinterface $(1)/etc/config/userinterface
$(INSTALL_BIN) ./files/etc/init.d/userinterface $(1)/etc/init.d/userinterface
$(INSTALL_BIN) ./files/etc/uci-defaults/93-userinterface-firewall $(1)/etc/uci-defaults/93-userinterface-firewall
$(INSTALL_BIN) ./files/etc/firewall.userinterface $(1)/etc/firewall.userinterface
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)
@@ -174,10 +194,10 @@ define Build/InstallDev
$(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)/libbbf_api/*.h $(1)/usr/include/libbbf_api/
$(CP) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.{a,so*} $(1)/usr/lib/
touch $(1)/usr/lib/libbbf_api.so
$(CP) $(PKG_BUILD_DIR)/libbbfdm.so $(1)/usr/lib/
endef
$(eval $(call BuildPackage,userinterface))
$(eval $(call BuildPackage,libbbf_api))
$(eval $(call BuildPackage,libbbfdm))
$(eval $(call BuildPackage,libbbfdm-openssl))

View File

@@ -0,0 +1,112 @@
{
"Device.UserInterface.": {
"type": "object",
"version": "2.0",
"protocols": [
"cwmp",
"usp"
],
"access": false,
"array": false,
"Device.UserInterface.RemoteAccess.": {
"type": "object",
"version": "2.0",
"protocols": [
"cwmp",
"usp"
],
"access": false,
"array": false,
"Enable": {
"type": "boolean",
"read": true,
"write": true,
"version": "2.0",
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "userinterface",
"section": {
"name": "remote_access"
},
"option": {
"name": "enable"
}
}
}
]
},
"Port": {
"type": "string",
"read": true,
"write": true,
"version": "2.0",
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "userinterface",
"section": {
"name": "remote_access"
},
"option": {
"name": "port"
}
}
}
]
},
"SupportedProtocols": {
"type": "string",
"read": true,
"write": false,
"version": "2.0",
"protocols": [
"cwmp",
"usp"
],
"list": {
"datatype": "string",
"enumerations": [
"HTTP",
"HTTPS"
]
},
"default": "HTTP"
},
"Protocol": {
"type": "string",
"read": true,
"write": true,
"version": "2.0",
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "userinterface",
"section": {
"name": "remote_access"
},
"option": {
"name": "protocol"
}
}
}
]
}
}
}
}

View File

@@ -0,0 +1,6 @@
config userinterface 'remote_access'
option enable '0'
option interface 'wan'
option port '80'
option protocol 'HTTP'

View File

@@ -0,0 +1,88 @@
#!/bin/sh
#!/bin/sh
. /lib/functions.sh
IDENTIFIER="REMOTE-ACCESS-WAN"
log() {
echo "${@}"|logger -t firewall.userinterface -p info
}
if [ ! -f "/etc/config/userinterface" ]; then
exit 0;
fi
function exec_cmd()
{
if ! $@; then
log "Failed to run [$@]"
fi
}
function configure_firewall_rule()
{
local enable port protocol gui_port
local zone interface
config_load userinterface
config_get_bool enable remote_access enable 1
config_get port remote_access port
config_get interface remote_access interface
if [ "${enable}" -eq "0" -o -z "${port}" -o -z "${interface}" ]; then
return 0;
fi
zone="zone_${interface}_input"
iptables -w 1 -t filter -nL ${zone} 2>/dev/null 1>&2
if [ "$?" -eq 0 ]; then
iptables -w 1 -I ${zone} -p tcp -m multiport --dports ${port} -m conntrack --ctstate NEW,ESTABLISHED -m comment --comment "${IDENTIFIER}" -j ACCEPT
fi
zone="zone_${interface}_output"
iptables -w 1 -t filter -nL ${zone} 2>/dev/null 1>&2
if [ "$?" -eq 0 ]; then
iptables -w 1 -I ${zone} -p tcp -m multiport --dports ${port} -m conntrack --ctstate ESTABLISHED -m comment --comment "${IDENTIFIER}" -j ACCEPT
fi
}
function delete_firewall_rule()
{
local zone interface
local CMD
config_load userinterface
config_get interface remote_access interface
# Clean remote interface rules
if [ -z "${interface}" ]; then
return 0
fi
zone="zone_${interface}_input"
CMD="iptables -w 1 -t filter -L ${zone} --line-numbers"
while ${CMD} 2>/dev/null | grep "${IDENTIFIER}"; do
rule_num="$(${CMD} | grep "${IDENTIFIER}" | head -1|awk '{print $1}')"
if [ -n "${rule_num}" ]; then
exec_cmd iptables -w 1 -t filter -D ${zone} ${rule_num};
fi
done
zone="zone_${interface}_output"
CMD="iptables -w 1 -t filter -L ${zone} --line-numbers"
while ${CMD} 2>/dev/null | grep "${IDENTIFIER}"; do
rule_num="$(${CMD} | grep "${IDENTIFIER}" | head -1|awk '{print $1}')"
if [ -n "${rule_num}" ]; then
exec_cmd iptables -w 1 -t filter -D ${zone} ${rule_num};
fi
done
}
# Delete existing remote access rules
delete_firewall_rule
# Configure the User Interface rule
configure_firewall_rule

View File

@@ -0,0 +1,27 @@
#!/bin/sh /etc/rc.common
START=99
STOP=01
USE_PROCD=1
start_service() {
local enable
procd_open_instance usp
config_load userinterface
config_get_bool enable global enable 1
# Inject firewall rules
if [ "${enable}" -eq "1" ]; then
/etc/firewall.userinterface
fi
procd_close_instance
}
service_triggers()
{
procd_add_reload_trigger "userinterface"
}

View File

@@ -0,0 +1,12 @@
#!/bin/sh
uci -q batch <<-EOT
delete firewall.userinterface
set firewall.userinterface=include
set firewall.userinterface.path=/etc/firewall.userinterface
set firewall.userinterface.reload=1
commit firewall
EOT
exit 0

View File

@@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bulkdata
PKG_VERSION:=2.0.3
PKG_VERSION:=2.0.9
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git
PKG_SOURCE_VERSION:=85d7486a21a9eb0e0f345b587b3ac506edcb72fe
PKG_SOURCE_VERSION:=6e85d2032e66df581fae7c72cd83cc89367b8fc8
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -25,8 +25,6 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
@@ -34,7 +32,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=BBF BulkData Collection
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json +zlib
endef
TARGET_CFLAGS += \
@@ -50,8 +48,8 @@ endif
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bulkdatad $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bbf_plugin/*.so $(1)/usr/lib/bbfdm
$(INSTALL_DIR) $(1)/etc/bbfdm/json
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bbf_plugin/*.json $(1)/etc/bbfdm/json
$(CP) ./files/* $(1)/
endef

View File

@@ -7,22 +7,19 @@ USE_PROCD=1
PROG="/usr/sbin/bulkdatad"
start_service() {
local enable=$(uci -q get bulkdata.bulkdata.enable)
local enable
[ "$enable" != "1" ] && {
return 0
config_load bulkdata
config_get_bool enable bulkdata enable 1
procd_open_instance bulkdata
[ "$enable" -eq "1" ] && {
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
}
procd_open_instance
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
procd_close_instance
}
boot() {
start
}
reload_service() {
stop
start

View File

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

Binary file not shown.

Binary file not shown.

View File

@@ -26,7 +26,7 @@ PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
ifeq ($(CONFIG_TARGET_brcmbca),y)
TARGET_PLATFORM=BROADCOM
else
$(info Unexpected CONFIG_TARGET)

View File

@@ -19,7 +19,7 @@ define Package/easy-qos
SECTION:=net
CATEGORY:=Network
TITLE:=Easy QoS
DEPENDS:=@TARGET_iopsys_brcm63xx_arm
DEPENDS:=@(TARGET_brcmbca||TARGET_airoha)
endef
define Package/easy-qos/description

View File

@@ -19,7 +19,7 @@ include $(INCLUDE_DIR)/package.mk
-include $(TOPDIR)/.config
ifneq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),)
ifneq ($(CONFIG_TARGET_brcmbca),)
LINUX_DIR=$(BUILD_DIR)/bcmkernel/bcm963xx/kernel/linux-4.1
LINUX_VERSION := 4.1.52
LINUXINCLUDE=-Iarch/$(LINUX_KARCH)/mach-bcm963xx/include
@@ -85,7 +85,7 @@ define Build/Compile
endef
ifneq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),)
ifneq ($(CONFIG_TARGET_brcmbca),)
define KernelPackage/easy-soc-events/install-extra
cp $(PKG_BUILD_DIR)/easyevent.ko $(FS_DIR)/lib/modules/$(LINUX_VERSION)/extra
endef

View File

@@ -7,13 +7,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=easy-soc-libs
PKG_VERSION:=6.4.44
PKG_VERSION:=6.7.6
PKG_RELEASE:=1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=e4f811b7cd2836cdcce5ea0f97f515a317da5bc3
PKG_SOURCE_VERSION:=6e7ed4eb3d55cd19bc54ddc80e9fc7d1de803f0f
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/easy-soc-libs.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
@@ -36,28 +36,38 @@ define Package/easy-soc-libs
MENU:=1
endef
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
ifeq ($(CONFIG_TARGET_brcmbca),y)
TARGET_PLATFORM=BROADCOM
TARGET_WIFI_TYPE=BROADCOM
CHIP_ID=$(patsubst "%",%,$(CONFIG_BCM_CHIP_ID))
TARGET_CFLAGS +=-DIOPSYS_BROADCOM -DCHIP_$(CHIP_ID) -DCONFIG_BCM9$(CHIP_ID) \
-I$(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx \
-I$(STAGING_DIR)/usr/include/bcm963xx/userspace/public/include
else ifeq ($(CONFIG_TARGET_iopsys_ramips),y)
TARGET_PLATFORM=MEDIATEK
TARGET_CFLAGS +=-DIOPSYS_MEDIATEK
TARGET_WIFI_TYPE=MAC80211
TARGET_CFLAGS +=-DIOPSYS_MAC80211
else ifeq ($(CONFIG_TARGET_iopsys_x86),y)
TARGET_PLATFORM=TEST
TARGET_WIFI_TYPE=TEST
TARGET_CFLAGS +=-DIOPSYS_TEST
else ifeq ($(CONFIG_TARGET_iopsys_armvirt),y)
TARGET_PLATFORM=TEST
TARGET_WIFI_TYPE=TEST
TARGET_CFLAGS +=-DIOPSYS_TEST
else ifeq ($(CONFIG_TARGET_airoha),y)
TARGET_PLATFORM=ECONET
TARGET_WIFI_TYPE=MAC80211
TARGET_CFLAGS +=-DIOPSYS_ECONET
else
$(info Unexpected CONFIG_TARGET, use default MAC80211)
TARGET_PLATFORM=MAC80211
TARGET_WIFI_TYPE=MAC80211
TARGET_CFLAGS +=-DIOPSYS_MAC80211
endif
export TARGET_PLATFORM
export TARGET_WIFI_TYPE
subdirs := \
$(if $(CONFIG_PACKAGE_libeasy),libeasy) \
@@ -87,6 +97,7 @@ MAKE_FLAGS += \
LDFLAGS="$(TARGET_LDFLAGS)" \
FPIC="$(FPIC)" \
PLATFORM="$(TARGET_PLATFORM)" \
WIFI_TYPE="$(TARGET_WIFI_TYPE)" \
subdirs="$(subdirs)"
ifeq ($(LOCAL_DEV),1)

View File

@@ -2,7 +2,7 @@
define Package/libethernet
$(call Package/easy-soc-libs)
TITLE:= Ethernet library (libethernet)
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_iopsys_ramips:swconfig
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_iopsys_ramips:swconfig +TARGET_airoha:ecnt_api
endef
define Package/libethernet/config

View File

@@ -2,7 +2,7 @@
define Package/libwifi
$(call Package/easy-soc-libs)
TITLE:= WiFi library (libwifi)
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_iopsys_brcm63xx_arm:bcmkernel
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_brcmbca:bcmkernel
endef
define Package/libwifi/config

View File

@@ -13,7 +13,7 @@ LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
PKG_SOURCE_VERSION:=2390a3503990e04e33e8e448ad9dccc00f206908
PKG_SOURCE_VERSION:=dc12712af8c4088f7873502ca845e51c68a1ada9
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -30,7 +30,7 @@ PKG_BUILD_PARALLEL:=1
# indirectly. This ensures that the package is rebuilt on config-changes.
PKG_CONFIG_DEPENDS:=CONFIG_TARGET_BOARD
export CONFIG_BRCM_SDK_VER_504021
export CONFIG_BRCM_SDK_VER_504040
export CONFIG_BCM_CHIP_ID
include $(INCLUDE_DIR)/package.mk

View File

@@ -5,21 +5,22 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=evoice
PKG_VERSION:=0.2.1
PKG_VERSION:=0.2.39
LOCAL_DEV=0
LOCAL_DEV_EVOICE_DIR=~/voip/evoice
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/evoice.git
PKG_SOURCE_VERSION:=f2477946f9e142d01820b38e32ce98a781e0310e
PKG_SOURCE_VERSION:=30d65330de0368f73ecf4a2e804c39a2ee280454
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_LICENSE:=PROPRIETARY
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE_FILES:=LICENSE
# All config variable that are passed to the make invocation, directly or
# indirectly. This ensures that the package is rebuilt on config-changes.
#PKG_CONFIG_DEPENDS:=CONFIG_TARGET_BOARD
@@ -31,7 +32,10 @@ define Package/$(PKG_NAME)
SUBMENU:=Telephony
TITLE:=Ensemble Voice
URL:=
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp +TARGET_iopsys_brcm63xx_arm:bcmkernel +TARGET_iopsys_econet:kmod-voip_driver
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp +libopenssl +libjson-c +libblobmsg-json\
+TARGET_brcmbca:bcmkernel\
+TARGET_airoha:kmod-voip_driver\
+TARGET_airoha:voip_app +libbbf_api
endef
define Package/$(PKG_NAME)/description
@@ -40,33 +44,60 @@ endef
ifeq ($(LOCAL_DEV),1)
# If you want to build the code from your own local repositiory enable
# LOCAL_DEV and change the path below to your own git repository.
# LOCAL_DEV and set LOCAL_DEV_EVOICE_DIR to your own git repository.
define Build/Prepare
rsync -av /swdev/bide/evoice_clean/* $(PKG_BUILD_DIR)/
@echo "======================================================="
@echo "DEVELOPMENT BUILD! rsync $(LOCAL_DEV_EVOICE_DIR) to $(PKG_BUILD_DIR)"
@echo "======================================================="
rsync -a $(LOCAL_DEV_EVOICE_DIR)/* $(PKG_BUILD_DIR)/
endef
endif
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
IDIR = $(STAGING_DIR)/usr/include
TONES_INI_REQUIRED=
ifeq ($(CONFIG_TARGET_brcmbca),y)
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)
BDIR = bcm963xx/userspace/private/apps/voice
CC_FLAGS = -I$(IDIR) -I$(IDIR)/$(BDIR)/inc\
-I$(IDIR)/bcm963xx/xchg/bos/publicInc\
-I$(IDIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
TRG=SVrgBcmFxs
JSONFILE=codecs_brcm.json
else ifeq ($(CONFIG_TARGET_airoha),y)
TARGET_PLATFORM=ECONET
TONES_INI_REQUIRED=y
TRG=SVrgMtekOwrt
JSONFILE=codecs_airoha.json
endif
# disable temporarily some not important warnings, force PIC
CC_FLAGS_VS=$(CC_FLAGS) -Wno-unused-parameter -Wno-unused-function -fPIC
export TARGET_PLATFORM
#used and altered by BIDE makefiles
export _XFLAGS
BIDE_MAKE_OPTS = -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk\
SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix LIF=cerder DBG=dbg
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=libvoiceservice LIF=cerder DBG=dbg
+$(MAKE) $(BIDE_MAKE_OPTS) CC_FLAGS="$(CC_FLAGS)" TRG=$(TRG)
@echo "clean libvoiceservice before building shared lib!"
+$(MAKE) $(BIDE_MAKE_OPTS) CC_FLAGS="$(CC_FLAGS_VS)" TRG=libvoiceservice cleanall
+$(MAKE) $(BIDE_MAKE_OPTS) CC_FLAGS="$(CC_FLAGS_VS)" TRG=libvoiceservice
endef
define Package/evoice/install
$(CP) ./files/* $(1)/
$(if $(TONES_INI_REQUIRED),,$(RM) $(1)/etc/evoice/tones.ini)
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(1)/lib/voice/$(JSONFILE) $(1)/lib/voice/codecs_evoice.json
$(RM) $(1)/lib/voice/codecs_brcm.json
$(RM) $(1)/lib/voice/codecs_airoha.json
$(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/libvoiceservice.so $(1)/usr/lib/bbfdm/

View File

@@ -22,6 +22,7 @@ config SIPClient 'Client2'
config SIPNetwork 'Network1'
option Enable '1'
option ProxyServer 'sip-proxy.iopsys.eu'
option AcceptFromProxyOnly '0'
option ProxyServerPort '5060'
option ProxyServerTransport 'UDP'
option RegistrarServer 'sip-proxy.iopsys.eu'
@@ -33,57 +34,45 @@ config SIPNetwork 'Network1'
option TimerRegistrationFailed '120'
option TimerT1 '500'
option VoIPProfile 'VoIPProfile1'
option SIPSessionTimerEnable '0'
option SIPSessionExpireInterval '1800'
option SIPSessionMinimumTimer '90'
option SIPSessionRefresher 'NONE'
option SIPSessionTimerMode 'REQUEST'
option SIPSessionRefreshRequest 'UPDATE'
list CodecList '1CodecProfile1'
list CodecList '1CodecProfile2'
list CodecList '1CodecProfile3'
list CodecList '1CodecProfile5'
list CodecList '1CodecProfile4'
config Capabilities 'Capabilities'
option FacilityActions 'CW_ACTIVE,CFU_ACTIVE'
config CapabilitiesCodec 'Codec1'
option Codec 'G.711ALaw'
config CapabilitiesCodec 'Codec2'
option Codec 'G.711MuLaw'
config CapabilitiesCodec 'Codec3'
option Codec 'G.726'
config CapabilitiesCodec 'Codec4'
option Codec 'G.722'
config CapabilitiesCodec 'Codec5'
option Codec 'G.729'
config CodecProfile '1CodecProfile1'
option Enable '1'
option Codec 'Codec1'
option Codec 'G.711ALaw'
option PacketizationPeriod '20'
option SilenceSupression '1'
config CodecProfile '1CodecProfile2'
option Enable '1'
option Codec 'Codec2'
option Codec 'G.711MuLaw'
option PacketizationPeriod '20'
option SilenceSupression '1'
config CodecProfile '1CodecProfile3'
option Enable '1'
option Codec 'Codec3'
option Codec 'G.726'
option PacketizationPeriod '20'
option SilenceSupression '0'
config CodecProfile '1CodecProfile4'
option Enable '1'
option Codec 'Codec4'
option Codec 'G.722'
option PacketizationPeriod '20'
option SilenceSupression '0'
config CodecProfile '1CodecProfile5'
option Enable '1'
option Codec 'Codec5'
option Codec 'G.729'
option PacketizationPeriod '20'
option SilenceSupression '0'
@@ -149,7 +138,7 @@ config IncomingMap 'IncomingMap2'
option Line 'Line2'
config IncomingMap 'IncomingMap3'
option Enable '1'
option Enable '0'
option Extension 'Extension2'
option Line 'Line1'
@@ -222,15 +211,15 @@ config NumberingPlan 'NumberingPlan2'
option InterDigitTimerStd '2000'
option InterDigitTimerOpen '2000'
option TerminationDigit ' '
list PrefixList '3PrefixInfo1'
list PrefixList '3PrefixInfo2'
list PrefixList '3PrefixInfo3'
list PrefixList '3PrefixInfo4'
list PrefixList '3PrefixInfo5'
list PrefixList '3PrefixInfo6'
list PrefixList '3PrefixInfo7'
list PrefixList '3PrefixInfo8'
list PrefixList '3PrefixInfo9'
list PrefixList '2PrefixInfo1'
list PrefixList '2PrefixInfo2'
list PrefixList '2PrefixInfo3'
list PrefixList '2PrefixInfo4'
list PrefixList '2PrefixInfo5'
list PrefixList '2PrefixInfo6'
list PrefixList '2PrefixInfo7'
list PrefixList '2PrefixInfo8'
list PrefixList '2PrefixInfo9'
config NumberingPlan 'NumberingPlan3'
option MinimumNumberOfDigits '5'
@@ -238,9 +227,9 @@ config NumberingPlan 'NumberingPlan3'
option InterDigitTimerStd '2000'
option InterDigitTimerOpen '2000'
option TerminationDigit '#'
list PrefixList '4PrefixInfo1'
list PrefixList '3PrefixInfo1'
config PrefixInfo '3PrefixInfo1'
config PrefixInfo '2PrefixInfo1'
option Enable '1'
option PrefixRange '*43#'
option PrefixMinNumberOfDigits '4'
@@ -250,7 +239,7 @@ config PrefixInfo '3PrefixInfo1'
option FacilityAction 'CW_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo2'
config PrefixInfo '2PrefixInfo2'
option Enable '1'
option PrefixRange '#43#'
option PrefixMinNumberOfDigits '4'
@@ -260,7 +249,7 @@ config PrefixInfo '3PrefixInfo2'
option FacilityAction 'CW_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo3'
config PrefixInfo '2PrefixInfo3'
option Enable '1'
option PrefixRange '*21*(X+)#'
option PrefixMinNumberOfDigits '9'
@@ -270,7 +259,7 @@ config PrefixInfo '3PrefixInfo3'
option FacilityAction 'CFU_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo4'
config PrefixInfo '2PrefixInfo4'
option Enable '1'
option PrefixRange '#21#'
option PrefixMinNumberOfDigits '4'
@@ -280,7 +269,7 @@ config PrefixInfo '3PrefixInfo4'
option FacilityAction 'CFU_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo5'
config PrefixInfo '2PrefixInfo5'
option Enable '1'
option PrefixRange '*67*(X+)#'
option PrefixMinNumberOfDigits '9'
@@ -290,7 +279,7 @@ config PrefixInfo '3PrefixInfo5'
option FacilityAction 'CFB_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo6'
config PrefixInfo '2PrefixInfo6'
option Enable '1'
option PrefixRange '#67#'
option PrefixMinNumberOfDigits '4'
@@ -300,7 +289,7 @@ config PrefixInfo '3PrefixInfo6'
option FacilityAction 'CFB_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo7'
config PrefixInfo '2PrefixInfo7'
option Enable '1'
option PrefixRange '*61*(X+(*X+)?)#'
option PrefixMinNumberOfDigits '15'
@@ -310,7 +299,7 @@ config PrefixInfo '3PrefixInfo7'
option FacilityAction 'CFNR_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo8'
config PrefixInfo '2PrefixInfo8'
option Enable '1'
option PrefixRange '#61#'
option PrefixMinNumberOfDigits '4'
@@ -320,7 +309,7 @@ config PrefixInfo '3PrefixInfo8'
option FacilityAction 'CFNR_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo9'
config PrefixInfo '2PrefixInfo9'
option Enable '1'
option PrefixRange '*31*'
option PrefixMinNumberOfDigits '4'
@@ -330,7 +319,7 @@ config PrefixInfo '3PrefixInfo9'
option FacilityAction 'CA_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '4PrefixInfo1'
config PrefixInfo '3PrefixInfo1'
option Enable '1'
option PrefixRange '110|112'
option PrefixMinNumberOfDigits '7'

File diff suppressed because it is too large Load Diff

View File

@@ -1,38 +0,0 @@
# 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

@@ -3,6 +3,7 @@ config account 'map_board'
option HW_Has_Voice 'hw.board.hasVoice'
option HW_Has_DECT 'hw.board.hasDect'
option HW_Nr_Of_POTS_Ports 'hw.board.VoicePorts'
option HW_VoiceDSP 'hw.board.VoiceDSP'
option ProductID 'device.deviceinfo.ModelName'
option I3_VERSION 'device.deviceinfo.SoftwareVersion'
option SerialNumber 'device.deviceinfo.SerialNumber'
@@ -47,16 +48,23 @@ config account 'map_account'
# Network stuff associated with an account.
# All parameters in this table are written to internal configuration
config network 'map_net'
option Enable 'voice.Network@.Enable'
option Registration_Server 'voice.Network@.RegistrarServer'
option Outbound_Proxy 'voice.Network@.ProxyServer'
option SIP_Port 'voice.Network@.RegistrarServerPort'
option SIP_Transport 'voice.Network@.RegistrarServerTransport'
option RegistrationPeriod 'voice.Network@.RegistrationPeriod'
option Enable 'voice.Network@.Enable'
option Registration_Server 'voice.Network@.RegistrarServer'
option Outbound_Proxy 'voice.Network@.ProxyServer'
option Accept_From_Registered 'voice.Network@.AcceptFromProxyOnly'
option SIP_Port 'voice.Network@.RegistrarServerPort'
option SIP_Transport 'voice.Network@.RegistrarServerTransport'
option RegistrationPeriod 'voice.Network@.RegistrationPeriod'
option Registration_Interval 'voice.Network@.RegisterExpires'
option Reg_Failure_Interval 'voice.Network@.TimerRegistrationFailed'
option T1 'voice.Network@.TimerT1'
option UserAgentDomain 'voice.Network@.UserAgentDomain'
option Reg_Failure_Interval 'voice.Network@.TimerRegistrationFailed'
option T1 'voice.Network@.TimerT1'
option UserAgentDomain 'voice.Network@.UserAgentDomain'
option SIP_SessTmrEnable 'voice.Network@.SIPSessionTimerEnable'
option SIP_SessTmrMode 'voice.Network@.SIPSessionTimerMode'
option SIP_SessTmrMsg 'voice.Network@.SIPSessionRefreshRequest'
option SIP_SessTmrRefresher 'voice.Network@.SIPSessionRefresher'
option SIP_MinSE 'voice.Network@.SIPSessionMinimumTimer'
option SIP_SessInterval 'voice.Network@.SIPSessionExpireInterval'
config VoIPProfile 'map_voip'
option Enable 'voice.VoIPProfile@.Enable'
@@ -73,6 +81,13 @@ config codecs 'map_codec'
option ptime 'voice.CodecProfile@.PacketizationPeriod'
option dtx 'voice.CodecProfile@.SilenceSupression'
config fxsinfo 'map_fxs'
option Enable 'voice.FXS@.Enable'
option DialType 'voice.FXS@.DialType'
option TransmitGain 'voice.FXS@.TransmitGain'
option ReceiveGain 'voice.FXS@.ReceiveGain'
option EchoCancellationEnable 'voice.FXS@.EchoCancellationEnable'
config extensioninfo 'map_ext'
option Enable 'voice.Extension@.Enable'
option Internal_Number_Phone 'voice.Extension@.ExtensionNumber'

View File

@@ -22,7 +22,6 @@ config static_prm 'defaults'
option Tone_On_Hangup '1'
option BusyTone_On_Hangup '1'
option Enable_Analouge_Conf '0'
option SIP_SessTmrEnable '0'
option PrackUsage '1'
option SIP_SupportedPath '0'
option IMS_Access_Network_Info ' '

View File

@@ -5,10 +5,17 @@ STOP=12
USE_PROCD=1
NAME=evoice
VOICE_UCI_CONFIG=voice
start_service() {
[ "$(db -q get hw.board.hasVoice)" = "1" ] || return
which endptmngr >/dev/null 2>&1 && {
echo "evoice can't be started since endptmngr is installed. Please remove endptmngr and retry"
return
}
procd_open_instance
procd_set_param command $NAME
procd_set_param respawn "5" "0" "3"
@@ -20,3 +27,6 @@ reload_service() {
start
}
service_triggers() {
procd_add_reload_trigger $VOICE_UCI_CONFIG
}

View File

@@ -0,0 +1,50 @@
{
"G.711ALaw": [
{
"BitRate": 64000,
"PacketizationPeriod": "20",
"SilenceSuppression": false
}
],
"G.711MuLaw": [
{
"BitRate": 64000,
"PacketizationPeriod": "20",
"SilenceSuppression": false
}
],
"G.722": [
{
"BitRate": 64000,
"PacketizationPeriod": "20",
"SilenceSuppression": false
}
],
"G.726": [
{
"BitRate": 32000,
"PacketizationPeriod": "20",
"SilenceSuppression": false
},
{
"BitRate": 24000,
"PacketizationPeriod": "20",
"SilenceSuppression": false
}
],
"G.729": [
{
"BitRate": 8000,
"PacketizationPeriod": "20",
"SilenceSuppression": false
}
],
"AMR": [
{
"BitRate": 7400,
"PacketizationPeriod": "20",
"SilenceSuppression": false
}
]
}

View File

@@ -0,0 +1,140 @@
{
"G.711MuLaw": [
{
"BitRate": 64000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"G.711ALaw": [
{
"BitRate": 64000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"G.726": [
{
"BitRate": 16000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 24000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 32000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 40000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"G.723.1": [
{
"BitRate": 5300,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 6300,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"G.729": [
{
"BitRate": 8000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"iLBC": [
{
"BitRate": 15200,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 13300,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"G.722": [
{
"BitRate": 64000,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"AMR": [
{
"BitRate": 12200,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 10200,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 7950,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 7400,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 6700,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 5900,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 5150,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
},
{
"BitRate": 4750,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"GSM-EFR": [
{
"BitRate": 12200,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"GSM-FR": [
{
"BitRate": 13200,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
],
"GSM-HR": [
{
"BitRate": 5600,
"PacketizationPeriod": "10-30",
"SilenceSuppression": true
}
]
}

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -12,7 +12,7 @@ PKG_VERSION:=1.0
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/fdtextract.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=0ebaf1e7d1f09318ae75d0f475a25280742b790e
PKG_SOURCE_VERSION:=e3cefda3b26c9aea3021b20725ce7b31b33eebc4
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPLv2

View File

@@ -28,7 +28,7 @@ define KernelPackage/$(PKG_NAME)
FILES:=$(PKG_BUILD_DIR)/$(PKG_NAME).$(LINUX_KMOD_SUFFIX)
KCONFIG:=CONFIG_PACKAGE_kmod-gryphon-led-kernel-module=y
AUTOLOAD:=$(call AutoLoad,60,$(PKG_NAME))
DEPENDS:= +(TARGET_iopsys_brcm63xx_arm):bcmkernel
DEPENDS:= +(TARGET_brcmbca):bcmkernel
PKG_LICENSE:=GPLv2
PKG_LICENSE_URL:=
endef
@@ -42,15 +42,27 @@ EXTRA_KCONFIG:= CONFIG_RGB_LED=m
MODULE_INCLUDE=-I$(PKG_BUILD_DIR)
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
ifeq ($(CONFIG_TARGET_brcmbca),y)
LINUX_DIR:=$(BUILD_DIR)/bcmkernel/bcm963xx/kernel/linux-4.19
MODULES_SUBDIR:=lib/modules/4.19.183
# This assumes that the MODULES_SUBDIR set by OpenWrt is of the form
# lib/modules/4.19.235-abcdef where 4.19.235 is the version of our fake bcmlinux kernel
# and abcdef the git-commit.
# The kernel compiled by the Broadcom SDK has a uname -r of 4.19.235, i.e. without the git-commit.
# The assignment below removes the part after the - which puts modules in the right directory as
# long as the bcmlinux version matches the kernel version in the BCM SDK.
# So, this will only stop working in the time window where the BCM SDK has been updated
# but bcmlinux has not yet been updated.
MODULES_SUBDIR:=$(firstword $(subst -, ,$(MODULES_SUBDIR)))
TARGET_CROSS:=$(CONFIG_BRCM_ALT_TOOLCHAIN_BASE)/$(CONFIG_BRCM_ALT_ARM_TOOLCHAIN_TOPDIR)/bin/$(CONFIG_BRCM_ALT_ARM_TOOLCHAIN_PREFIX)-
ifeq ($(CONFIG_BCM_CHIP_ID),$(filter $(CONFIG_BCM_CHIP_ID),"63158" "6856" "6858"))
# These targets use a 64-bit kernel
LINUX_KARCH:=arm64
TARGET_CROSS:=$(CONFIG_BRCM_ALT_TOOLCHAIN_BASE)/$(CONFIG_BRCM_ALT_AARCH64_TOOLCHAIN_TOPDIR)/bin/$(CONFIG_BRCM_ALT_AARCH64_TOOLCHAIN_PREFIX)-
else ifeq ($(CONFIG_BCM_CHIP_ID),$(filter $(CONFIG_BCM_CHIP_ID),"6855" "6756" "47622" "63148" "63178"))
# These targets use a 32-bit arm-sfp kernel
LINUX_KARCH:=arm
TARGET_CROSS:=$(CONFIG_BRCM_ALT_TOOLCHAIN_BASE)/$(CONFIG_BRCM_ALT_ARMSFP_TOOLCHAIN_TOPDIR)/bin/$(CONFIG_BRCM_ALT_ARMSFP_TOOLCHAIN_PREFIX)-
endif
# For some reason, Broadcom's kernel does not set the include paths correctly when compiling out-of-tree modules
EXTRA_KCPPFLAGS:="-I $(LINUX_DIR)/../bcmkernel/include -I $(LINUX_DIR)/arch/arm/mach-bcm963xx/include"

View File

@@ -1,30 +0,0 @@
choice
prompt "Select ACS sever"
default CWMP_ACS_MULTI
depends on PACKAGE_icwmp || \
PACKAGE_icwmp-openssl || \
PACKAGE_icwmp-wolfssl || \
PACKAGE_icwmp-mbedtls
config CWMP_ACS_MULTI
bool "No specific ACS, follow standard"
config CWMP_ACS_HDM
bool "Select HDM as ACS server"
endchoice
config CWMP_DEBUG
bool "Compile with debug options"
depends on PACKAGE_icwmp || \
PACKAGE_icwmp-openssl || \
PACKAGE_icwmp-wolfssl || \
PACKAGE_icwmp-mbedtls
default y
config CWMP_DEVEL_DEBUG
bool "Compile with development debug options (deprecated)"
depends on PACKAGE_icwmp || \
PACKAGE_icwmp-openssl || \
PACKAGE_icwmp-wolfssl || \
PACKAGE_icwmp-mbedtls
default n

View File

@@ -1,55 +1,35 @@
#
# 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 BSD-3-Clause
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=8.4.8
PKG_VERSION:=9.1.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_VERSION:=00d037ce851495aca6365f2189849c6030f305df
PKG_SOURCE_VERSION:=456d10b75be48f3eb61feb5a89af8f45de86b345
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=GPLv2
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_FIXUP:=autoreconf
PKG_CONFIG_DEPENDS:= \
CONFIG_CWMP_ACS_MULTI \
CONFIG_CWMP_ACS_HDM \
CONFIG_CWMP_DEBUG \
CONFIG_CWMP_DEVEL_DEBUG
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/icwmp/default
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=TR069 CWMP client
DEPENDS:=+libuci +libubox +libblobmsg-json +libubus +libjson-c +libcurl +mxml
endef
define Package/icwmp/config
source "$(SOURCE)/Config_cwmp.in"
endef
TARGET_CFLAGS += \
-D_GNU_SOURCE \
"-DCWMP_REVISION=\\\"$(PKG_SOURCE_VERSION)\\\""
define Package/icwmp
$(Package/icwmp/default)
TITLE += (internal)
VARIANT:=internal
DEPENDS:=+libuci +libubox +libblobmsg-json +libubus +libjson-c +libcurl +mxml +libuuid
endef
define Package/icwmp-openssl
@@ -77,41 +57,15 @@ define Package/icwmp-mbedtls
endef
ifeq ($(BUILD_VARIANT),openssl)
CONFIGURE_ARGS += --enable-libopenssl
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
TARGET_LDFLAGS += "-lssl"
CMAKE_OPTIONS += -DWITH_OPENSSL=ON
endif
ifeq ($(BUILD_VARIANT),wolfssl)
CONFIGURE_ARGS += --enable-libwolfssl
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
TARGET_LDFLAGS += "-lwolfssl"
CMAKE_OPTIONS += -DWITH_WOLFSSL=ON
endif
ifeq ($(BUILD_VARIANT),mbedtls)
CONFIGURE_ARGS += --enable-libmbedtls
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
TARGET_LDFLAGS += "-lmbedtls"
endif
ifeq ($(CONFIG_CWMP_ACS_MULTI),y)
CONFIGURE_ARGS += \
--enable-acs=multi
endif
ifeq ($(CONFIG_CWMP_ACS_HDM),y)
CONFIGURE_ARGS += \
--enable-acs=hdm
endif
ifeq ($(CONFIG_CWMP_DEBUG),y)
CONFIGURE_ARGS += \
--enable-debug
endif
ifeq ($(CONFIG_CWMP_DEVEL_DEBUG),y)
CONFIGURE_ARGS += \
--enable-devel
CMAKE_OPTIONS += -DWITH_MBEDTLS=ON
endif
USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1)
@@ -128,22 +82,22 @@ define Package/icwmp/default/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
$(INSTALL_DIR) $(1)/etc/bbfdm/json/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/icwmpd $(1)/usr/sbin/icwmpd
$(INSTALL_DATA) ./files/etc/config/cwmp $(1)/etc/config/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/uci-defaults/85-cwmp-set-userid $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/90-cwmpfirewall $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/95-icwmp-generate-ssl $(1)/etc/uci-defaults/
$(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_DATA) ./files/etc/bbfdm/json/CWMPManagementServer.json $(1)/etc/bbfdm/json/
endef
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

@@ -15,7 +15,9 @@ config acs 'acs'
option ip_version '4'
config cpe 'cpe'
option enable '1'
option default_wan_interface 'wan'
option default_lan_interface 'lan'
option log_to_console 'disable'
option log_to_file 'disable'
# log_severity: INFO (Default)
@@ -30,7 +32,7 @@ config cpe 'cpe'
option amd_version '5'
# compression possible configs: InstanceNumber, InstanceAlias
option instance_mode 'InstanceNumber'
option session_timeout '60'
option session_timeout '300'
option notification '1'
option exec_download '0'
option periodic_notify_enable '1'

View File

@@ -1,99 +1,31 @@
#!/bin/sh
. /lib/functions.sh
log() {
echo "$@" |logger -t cwmp.update -p info
}
handle_icwmp_update() {
local defwan vendorspecinf update
local fallback_restart
local cwmp_enable
config_load cwmp
fallback_restart="${1:-0}"
update="0"
defwan="$(uci -q get cwmp.cpe.default_wan_interface)"
vendorspecinf="$(ifstatus "${defwan}" | jsonfilter -e "@.data.vendorspecinf")"
config_get_bool cwmp_enable cpe enable 1
if [ "$cwmp_enable" = "0" ]; then
return 0
fi
log "Handling dhcp option value [${vendorspecinf}]"
[ -n "$vendorspecinf" ] && {
local url old_url
local prov_code old_prov_code
local min_wait_interval old_min_wait_interval
local retry_interval_multiplier old_retry_interval_multiplier
ret=$(ubus call service list '{"name":"icwmpd"}' | jsonfilter -qe '@.icwmpd.instances.icwmp.running')
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
}
# In case of update restart icwmp
if [ "${update}" -eq "1" ]; then
log "CWMP uci changes, reload cwmp with uci commit"
ubus call uci commit '{"config":"cwmp"}'
else
status="$(ubus call tr069 status |jsonfilter -qe '@.last_session.status')"
if [ "$status" = "failure" ]; then
if [ "$ret" == "true" ]; then
# read status from var/state/cwmp
status=$(uci -q -c /var/state get cwmp.sess_status.current_status)
if [ "$status" != "running" ]; then
log "Trigger out of bound inform, since last inform status was failure"
ubus -t 10 call tr069 inform >/dev/null 2>&1
# Handle timeout
if [ "$?" -eq 7 ]; then
log "Restarting icwmp tr069 object"
/etc/init.d/icwmpd restart
fi
fi
else
log "Restarting icwmp tr069 object"
/etc/init.d/icwmpd restart
fi
}

View File

@@ -15,6 +15,34 @@ log() {
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() {
local wan="${1}"
@@ -43,6 +71,206 @@ enable_dhcp_option43() {
fi
}
convert_to_hex() {
local val=""
local optval="${1}"
OPTIND=1
while getopts ":" opt "-$optval"
do
temp=$(printf "%02X" "'${OPTARG:-:}")
val="${val}:${temp}"
done
echo "${val}"
}
configure_send_op125() {
local sendopt="${1}"
local intf="${2}"
local uci="${3}"
local hex_oui=""
local hex_serial=""
local hex_class=""
local oui_len=0
local serial_len=0
local class_len=0
if [ "${uci}" = "network" ]; then
local opt125="125:00:00:0D:E9"
else
local opt125="125,00:00:0D:E9"
fi
config_get oui cpe manufacturer_oui ""
if [ -z "${oui}" ]; then
oui=$(db -q get device.deviceinfo.ManufacturerOUI)
fi
oui=$(echo "${oui}" | tr 'a-f' 'A-F')
config_get serial cpe serial_number ""
if [ -z "${serial}" ]; then
serial=$(db -q get device.deviceinfo.SerialNumber)
fi
config_get class cpe product_class ""
if [ -z "${class}" ]; then
class=$(db -q get device.deviceinfo.ProductClass)
fi
oui_len=$(echo -n "${oui}" | wc -m)
serial_len=$(echo -n "${serial}" | wc -m)
class_len=$(echo -n "${class}" | wc -m)
if [ ${oui_len} -eq 0 ] || [ ${serial_len} -eq 0 ]; then
return 0
fi
opt125_len=$((oui_len + serial_len + class_len))
if [ ${class_len} -gt 0 ]; then
opt125_len=$((opt125_len + 6))
else
opt125_len=$((opt125_len + 4))
fi
hex_opt125_len=$(printf "%02X" "${opt125_len}")
opt125="${opt125}:${hex_opt125_len}"
hex_oui=$(convert_to_hex "${oui}")
if [ -z "${hex_oui}" ]; then
return 0
fi
hex_oui_len=$(printf "%02X" "${oui_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:01:${hex_oui_len}${hex_oui}"
else
opt125="${opt125}:04:${hex_oui_len}${hex_oui}"
fi
hex_serial=$(convert_to_hex "${serial}")
if [ -z "${hex_serial}" ]; then
return 0
fi
hex_serial_len=$(printf "%02X" "${serial_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:02:${hex_serial_len}${hex_serial}"
else
opt125="${opt125}:05:${hex_serial_len}${hex_serial}"
fi
if [ ${class_len} -gt 0 ]; then
hex_class=$(convert_to_hex "${class}")
if [ -z "${hex_class}" ]; then
return 0
fi
hex_class_len=$(printf "%02X" "${class_len}")
if [ "${uci}" = "network" ]; then
opt125="${opt125}:03:${hex_class_len}${hex_class}"
else
opt125="${opt125}:06:${hex_class_len}${hex_class}"
fi
fi
if [ "${uci}" = "network" ]; then
new_send_opt="$sendopt $opt125"
uci -q set network.$intf.sendopts="$new_send_opt"
else
uci -q add_list dhcp.$intf.dhcp_option="$opt125"
fi
}
enable_dnsmasq_option125() {
local lan="${1}"
local send125_present=0
local opt125="125,"
local proto="$(uci -q get dhcp.$lan.dhcpv4)"
if [ "${proto}" = "server" ]; then
opt_list="$(uci -q get dhcp.$lan.dhcp_option)"
for sopt in $opt_list; do
if [[ "$sopt" == "$opt125"* ]]; then
send125_present=1
break
fi
done
if [ ${send125_present} -eq 0 ]; then
configure_send_op125 "" "${lan}" "dhcp"
ubus call uci commit '{"config":"dhcp"}'
fi
fi
}
enable_disable_dhcp_option125() {
local wan="${1}"
local action="${2}"
local reqopts="$(uci -q get network.$wan.reqopts)"
local sendopts="$(uci -q get network.$wan.sendopts)"
local proto="$(uci -q get network.$wan.proto)"
local newreqopts=""
local newsendopts=""
local req125_present=0
local send125_present=0
local network_uci_update=0
local opt125="125:"
for ropt in $reqopts; do
case $ropt in
125) req125_present=1 ;;
*) ;;
esac
done
for sopt in $sendopts; do
if [[ "$sopt" == "$opt125"* ]]; then
send125_present=1
break
fi
done
if [ "${proto}" == "dhcp" ]; then
if [ "${action}" == "enable" ]; then
if [ ${req125_present} -eq 0 ]; then
newreqopts="$reqopts 125"
uci -q set network.$wan.reqopts="$newreqopts"
network_uci_update=1
fi
if [ ${send125_present} -eq 0 ]; then
configure_send_op125 "${sendopts}" "${wan}" "network"
network_uci_update=1
fi
else
if [ ${req125_present} -eq 1 ]; then
newreqopts=$(echo ${reqopts/125/})
uci -q set network.$wan.reqopts="$newreqopts"
network_uci_update=1
fi
if [ ${send125_present} -eq 1 ]; then
for sopt in $sendopts; do
if [[ "$sopt" == "$opt125"* ]]; then
newsendopts=$(echo ${sendopts/"${sopt}"/})
uci -q set network.$wan.sendopts="$newreqopts"
network_uci_update=1
break
fi
done
fi
fi
fi
if [ ${network_uci_update} -eq 1 ]; then
uci commit network
ubus call network reload
fi
}
wait_for_resolvfile() {
local time=$1
local tm=1
@@ -85,6 +313,8 @@ copy_cwmp_varstate_files_to_etc() {
fi
if [ -f /var/state/cwmp ]; then
uci -q -c /var/state delete cwmp.sess_status
uci -q -c /var/state commit cwmp
cp -f /var/state/cwmp /etc/icwmpd/
fi
@@ -145,18 +375,16 @@ validate_defaults() {
return 1;
}
ssl_capath="${ssl_capath%/}"
# Put the cert pem file in keep list
if [ -d "${ssl_capath}" ]; then
if ! grep "${ssl_capath}" /lib/upgrade/keep.d/icwmp; then
if ! grep "*.pem\|*.crt" /lib/upgrade/keep.d/icwmp; then
echo "${ssl_capath}"'/*.pem' >> /lib/upgrade/keep.d/icwmp
echo "${ssl_capath}"'/*.crt' >> /lib/upgrade/keep.d/icwmp
echo "${ssl_capath}"'/*.0' >> /lib/upgrade/keep.d/icwmp
fi
fi
[ -z "${url}" ] && [ -z "${dhcp_url}" ] && {
log "ACS url is empty can't start"
return 1;
}
validate_cpe_section || {
log "Validation of cpe section failed"
return 1;
@@ -165,39 +393,51 @@ validate_defaults() {
return 0;
}
boot() {
local dhcp_discovery="0"
config_load cwmp
config_get dhcp_discovery acs dhcp_discovery "0"
config_get wan_interface cpe default_wan_interface "wan"
if [ "${dhcp_discovery}" == "enable" ] || [ "${dhcp_discovery}" == "1" ]; then
# Set dhcp option 43 if not already configured
enable_dhcp_option43 "${wan_interface}"
fi
config_get lan_interface cpe default_lan_interface ""
if [ -n "${lan_interface}" ]; then
# Set dhcp_option 125 if not already configured
enable_disable_dhcp_option125 "${wan_interface}" "enable"
enable_dnsmasq_option125 "${lan_interface}"
else
# Remove dhcp option 125 if exists
enable_disable_dhcp_option125 "${wan_interface}" "disable"
fi
config_get ssl_capath acs ssl_capath
if [ -n "${ssl_capath}" ]; then
regenerate_ssl_link "${ssl_capath}"
fi
start
}
start_service() {
local enable_cwmp
local wan_interface
local dhcp_discovery
local dhcp_url
config_load cwmp
config_get_bool enable_cwmp cpe enable 1
config_get dhcp_discovery acs dhcp_discovery "0"
config_get dhcp_url acs dhcp_url ''
config_get wan_interface cpe default_wan_interface "wan"
if [ "$enable_cwmp" = "0" ] || [ "$enable_cwmp" = "false" ]; then
log "CWMP is not enabled"
if [ "$enable_cwmp" = "0" ]; then
return 0
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 /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
if [ "${dhcp_discovery}" == "enable" ] || [ "${dhcp_discovery}" == "1" ]; then
if [ -z "${dhcp_url}" ]; then
log "Empty dhcp url, running update script"
/etc/icwmpd/update.sh
fi
fi
validate_defaults || {
log "Validation of defaults failed"
return 1;
@@ -222,10 +462,39 @@ service_stopped()
copy_cwmp_varstate_files_to_etc
}
stop_service()
{
copy_cwmp_varstate_files_to_etc
}
reload_service() {
log "Reloading CWMP client"
ubus -t 1 call tr069 command '{"command":"reload"}'
if [ "$?" -ne "0" ]; then
local ret
config_load cwmp
config_get_bool enable_cwmp cpe enable 1
ret="0"
if [ "$enable_cwmp" = "0" ]; then
stop
start
return 0
fi
tr069_status="$(ubus -t 1 call tr069 status)"
ret="$?"
if [ "$ret" = "7" ]; then
# ubus timed out may be due to uloop is busy in some task so returning
return 0
fi
status="$(echo $tr069_status | jsonfilter -qe '@.cwmp.status')"
ret="$?"
if [ "$status" = "up" ]; then
ubus -t 1 call tr069 command '{"command":"reload"}'
ret="$?"
fi
if [ "$status" = "init" ] || [ "$ret" -ne "0" ]; then
log "Restarting CWMP client"
stop
start
@@ -242,7 +511,6 @@ service_triggers() {
json_add_array
json_add_string "" "run_script"
json_add_string "" "/etc/icwmpd/update.sh"
json_add_string "" "1"
json_close_array
json_close_array
json_add_int "" "2000"

View File

@@ -1,7 +1,11 @@
#!/bin/sh
. /lib/functions.sh
# Copy defaults by the factory to the cwmp UCI user section.
config_load cwmp
# Get Manufacturer OUI.
oui=$(uci -q get cwmp.cpe.manufacturer_oui)
config_get oui cpe manufacturer_oui ""
if [ -z "${oui}" ]; then
oui=$(db -q get device.deviceinfo.ManufacturerOUI)
fi
@@ -9,24 +13,29 @@ fi
oui=$(echo "${oui}" | tr 'a-f' 'A-F')
# Get system serial number.
serial=$(uci -q get cwmp.cpe.serial_number)
config_get serial cpe serial_number ""
if [ -z "${serial}" ]; then
serial=$(db -q get device.deviceinfo.SerialNumber)
fi
# Get userid values
acs_userid=$(uci -q get cwmp.acs.userid)
cpe_userid=$(uci -q get cwmp.cpe.userid)
config_get acs_userid acs userid ""
config_get cpe_userid cpe userid ""
# Only set if they are empty
if [ -z "$acs_userid" ]
then
if [ -z "${acs_userid}" ]; then
uci -q set cwmp.acs.userid="${oui}-${serial}"
fi
if [ -z "$cpe_userid" ]
then
if [ -z "${cpe_userid}" ]; then
uci -q set cwmp.cpe.userid="${oui}-${serial}"
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().

View File

@@ -1,38 +0,0 @@
#!/bin/sh
. /lib/functions.sh
regenerate_ssl_link_path()
{
local cert_dir all_file rehash
cert_dir="${1}"
all_file=$(ls $cert_dir/*.pem 2>/dev/null)
[ ! -d "${cert_dir}" ] && return 0;
[ ! -f "${all_file}" ] && return 0;
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
}
regenerate_ssl_link()
{
local cwmp_ca_path
regenerate_ssl_link_path "/etc/ssl/certs"
cwmp_ca_path=$(uci -q get cwmp.acs.ssl_capath)
if [[ "${cwmp_ca_path}" != "/etc/ssl/certs"* ]]; then
if [ -n "${cwmp_ca_path}" ]; then
regenerate_ssl_link_path "${cwmp_ca_path}"
fi
fi
}
regenerate_ssl_link

View File

@@ -1 +1,2 @@
/var/run/icwmpd/icwmpd_backup_session.xml
/etc/icwmpd/cwmp

View File

@@ -1,6 +1,6 @@
if (PACKAGE_ieee1905)
menu "Configurations"
menu "Configuration"
config IEEE1905_EXTENSION_ALLOWED
bool "Allow plugins to extend 1905 CMDUs and/or TLVs"
@@ -10,5 +10,18 @@ config IEEE1905_PLATFORM_HAS_WIFI
bool "Platform has WiFi"
default y if PACKAGE_libwifi
config IEEE1905_CMDU_SA_IS_ALMAC
bool "Send CMDUs with SA set to 1905 AL-macaddress instead of interface macaddress"
default n
config IEEE1905_WIFI_EASYMESH
bool "Include WiFi-Alliance's Easymesh updates"
default y
config IEEE1905_CMDU_FRAGMENT_TLV_BOUNDARY
bool "Fragment large CMDU frame at TLV boundary instead of octet boundary"
default y
endmenu
endif

View File

@@ -1,14 +0,0 @@
if (PACKAGE_map-plugin)
menu "Configurations"
config MULTIAP_DYNAMIC_CNTLR_SYNC_CONFIG
bool "Sync configuration between dynamic controllers in the network"
default n
config MULTIAP_FUZZ_1905_CMDUS
bool "Include support to fuzz 1905 CMDUs for testing purpose"
default n
endmenu
endif

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905
PKG_VERSION:=4.9.0
PKG_VERSION:=5.0.20
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=69b27e3e1509b9192c529fbba6a329cc0532cfbb
PKG_SOURCE_VERSION:=33eae9c44a70986d1e115636c8a609495449c313
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
@@ -35,31 +35,21 @@ define Package/ieee1905/config
endef
define Package/libieee1905
$(call Package/ieee1905/Default,$(1))
TITLE+= (library for CMDU and TLV handling)
$(call Package/ieee1905/Default)
TITLE:=libieee1905.so (library for CMDU and TLV handling)
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json
endef
define Package/ieee1905
$(call Package/ieee1905/Default,$(1))
TITLE+= ieee1905d (daemon implementing 1905.1 and provides cli)
$(call Package/ieee1905/Default)
TITLE:=ieee1905d (daemon implementing 1905.1 and provides cli)
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +ubus +libpthread \
+libieee1905 +IEEE1905_PLATFORM_HAS_WIFI:libwifi
endef
define Package/map-plugin
$(call Package/ieee1905/Default,$(1))
TITLE:=Multi-AP (Easymesh) plugin
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +ieee1905 +libieee1905
endef
define Package/map-plugin/config
source "$(SOURCE)/Config.map-plugin.in"
endef
include $(wildcard plugins/*.mk)
define Package/ieee1905/description
This package provides IEEE Std 1905.1 stack.
@@ -69,6 +59,15 @@ define Package/libieee1905/description
This package provides library functions for IEEE Std 1905.1 stack.
endef
plugins := \
$(if $(CONFIG_PACKAGE_map-plugin),map) \
$(if $(CONFIG_PACKAGE_snoop-plugin),snoop) \
$(if $(CONFIG_PACKAGE_topology-plugin),topology)
ppkg:=$(patsubst plugins/%.mk,%-plugin,$(wildcard plugins/*.mk))
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
@@ -78,10 +77,20 @@ ifeq ($(CONFIG_IEEE1905_PLATFORM_HAS_WIFI),y)
TARGET_CFLAGS += -DHAS_WIFI
endif
ifeq ($(CONFIG_MULTIAP_DYNAMIC_CNTLR_SYNC_CONFIG),y)
TARGET_CFLAGS += -DDYNAMIC_CNTLR_SYNC_CONFIG
ifeq ($(CONFIG_IEEE1905_CMDU_SA_IS_ALMAC),y)
TARGET_CFLAGS += -DCMDU_SA_IS_ALMAC
endif
ifeq ($(CONFIG_IEEE1905_WIFI_EASYMESH),y)
TARGET_CFLAGS += -DWIFI_EASYMESH
endif
ifeq ($(CONFIG_IEEE1905_CMDU_FRAGMENT_TLV_BOUNDARY),y)
TARGET_CFLAGS += -DIEEE1905_CMDU_FRAGMENT_TLV_BOUNDARY
endif
MAKE_FLAGS += \
extmod_subdirs="$(patsubst %,extensions/%,$(plugins))"
MAKE_PATH:=src
@@ -100,25 +109,6 @@ define Package/libieee1905/install
$(CP) $(PKG_BUILD_DIR)/src/libmidgen.so $(1)/usr/lib/
endef
define Package/map-plugin/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/libmaputil.so $(1)/usr/lib/libmaputil.so
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map.so $(1)/usr/lib/ieee1905/map.so
endef
define Build/InstallDev/map-plugin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map2.h $(1)/usr/include/map2.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map_module.h $(1)/usr/include/map_module.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/cntlrsync.h $(1)/usr/include/cntlrsync.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map.so $(1)/usr/lib/ieee1905/map.so
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/libmaputil.so $(1)/usr/lib/libmaputil.so
endef
define Build/InstallDev/libieee1905
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
@@ -136,7 +126,7 @@ endef
define Build/InstallDev
$(call Build/InstallDev/libieee1905,$(1),$(2))
$(call Build/InstallDev/map-plugin,$(1),$(2))
$(foreach p,$(ppkg),$(call Build/InstallDev/$(p),$(1),$(2)))
endef
ifeq ($(LOCAL_DEV),1)
@@ -147,4 +137,4 @@ endif
$(eval $(call BuildPackage,ieee1905))
$(eval $(call BuildPackage,libieee1905))
$(eval $(call BuildPackage,map-plugin))
$(eval $(foreach p,$(ppkg),$(call BuildPackage,$(p))))

View File

@@ -2,7 +2,7 @@ config ieee1905 'ieee1905'
option enabled '1'
option extension '1'
list extmodule 'map'
option registrar '2 5'
option registrar '2 5 6'
# option macaddress '0a:1b:2c:3d:4e:50'
config al-iface
@@ -24,3 +24,9 @@ config ap
option encryption 'sae-mixed'
option key '1234567890'
config ap
option band '6'
option ssid 'IOWRT-6GHz'
option encryption 'sae-mixed'
option key '1234567890'

View File

@@ -42,7 +42,7 @@ validate_ap_section() {
local section="$1"
uci_validate_section ieee1905 $section "${1}" \
'band:or("2", "5", "60")' \
'band:or("2", "5", "60", "6")' \
'ssid:string' \
'encryption:or("psk2", "sae-mixed", "sae", string)' \
'key:string' \

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

51
ieee1905/plugins/map.mk Normal file
View File

@@ -0,0 +1,51 @@
define Package/map-plugin
$(call Package/ieee1905/Default)
TITLE:=Multi-AP plugin supporting WiFi-Alliance Easymesh standard
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +ieee1905 +libieee1905
endef
define Package/map-plugin/config
if (PACKAGE_map-plugin)
menu "Configuration"
config MULTIAP_EASYMESH_VERSION
int "Easymesh version"
default 2
config MULTIAP_DYNAMIC_CNTLR_SYNC_CONFIG
bool "Sync configuration between dynamic controllers in the network"
default n
config MULTIAP_FUZZ_1905_CMDUS
bool "Include support to fuzz 1905 CMDUs for testing purpose"
default n
endmenu
endif
endef
TARGET_CFLAGS += -DEASYMESH_VERSION=$(CONFIG_MULTIAP_EASYMESH_VERSION)
ifeq ($(CONFIG_MULTIAP_DYNAMIC_CNTLR_SYNC_CONFIG),y)
TARGET_CFLAGS += -DDYNAMIC_CNTLR_SYNC_CONFIG
endif
define Build/InstallDev/map-plugin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/easymesh.h $(1)/usr/include/easymesh.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map_module.h $(1)/usr/include/map_module.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/cntlrsync.h $(1)/usr/include/cntlrsync.h
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map.so $(1)/usr/lib/ieee1905/map.so
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/libmaputil.so $(1)/usr/lib/libmaputil.so
endef
define Package/map-plugin/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/libmaputil.so $(1)/usr/lib/libmaputil.so
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map.so $(1)/usr/lib/ieee1905/map.so
endef

12
ieee1905/plugins/snoop.mk Normal file
View File

@@ -0,0 +1,12 @@
define Package/snoop-plugin
$(call Package/ieee1905/Default)
TITLE:=Show all received 1905 CMDUs over UBUS
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +ieee1905 +libieee1905
endef
define Package/snoop-plugin/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/snoop/snoop.so $(1)/usr/lib/ieee1905/snoop.so
endef

View File

@@ -0,0 +1,12 @@
define Package/topology-plugin
$(call Package/ieee1905/Default)
TITLE:=Build full network topology of the 1905 nodes only
DEPENDS= +libubox +libuci +libubus +libeasy +libnl-genl \
+libjson-c +libblobmsg-json +ieee1905 +libieee1905
endef
define Package/topology-plugin/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/ieee1905
$(CP) $(PKG_BUILD_DIR)/src/extensions/topology/topology.so $(1)/usr/lib/ieee1905/topology.so
endef

View File

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

View File

@@ -18,8 +18,21 @@ CONFIG_TARGET_ROOTFS_TARGZ=y
# /etc/banner and /etc/device_info #
CONFIG_IMAGEOPT=y
CONFIG_VERSIONOPT=y
CONFIG_VERSION_MANUFACTURER="iopsysWrt"
CONFIG_VERSION_MANUFACTURER="IOPSYS"
CONFIG_VERSION_MANUFACTURER_URL="https://iopsys.eu/"
CONFIG_VERSION_DIST="IOWRT"
# OpenWrt is given by CONFIG_VERSION_NUMBER which we do not want to override.
# disabling CONFIG_VERSION_FILENAMES will hide the OpenWrt version from the image filename
# CONFIG_VERSION_FILENAMES is not set
# CONFIG_VERSION_CODE is set to the IOWRT version instead by the genconfig-script and
# CONFIG_VERSION_CODE_FILENAMES will put it into the image filename.
CONFIG_VERSION_CODE_FILENAMES=y
CONFIG_VERSION_HOME_URL="https://iopsys.eu"
CONFIG_VERSION_BUG_URL="https://iopsys.eu"
CONFIG_VERSION_SUPPORT_URL="https://iopsys.eu"
# /lib/preinit #
CONFIG_PREINITOPT=y
@@ -44,12 +57,13 @@ CONFIG_LOCALMIRROR="https://download.iopsys.eu/iopsys/mirror/"
# EasySoC HAL #
CONFIG_PACKAGE_inbd=y
CONFIG_PACKAGE_libwifi=y
CONFIG_PACKAGE_peripheral_manager=y
CONFIG_PACKAGE_port-management=y
CONFIG_PACKAGE_wifimngr=y
# Multi-AP #
CONFIG_PACKAGE_ieee1905=y
CONFIG_PACKAGE_map-agent=m
CONFIG_PACKAGE_map-controller=m
CONFIG_PACKAGE_map-topology=y
CONFIG_PACKAGE_wfadatad-collector=y
@@ -115,7 +129,8 @@ CONFIG_PACKAGE_xl2tpd=y
CONFIG_PACKAGE_atftp=m
CONFIG_PACKAGE_atftpd=m
CONFIG_PACKAGE_ddns-scripts=y
CONFIG_PACKAGE_miniupnpd=y
CONFIG_PACKAGE_dnsmasq=y
CONFIG_PACKAGE_miniupnpd-iptables=y
CONFIG_PACKAGE_mosquitto-client-ssl=y
CONFIG_PACKAGE_mosquitto-ssl=y
CONFIG_PACKAGE_nginx=y
@@ -133,10 +148,11 @@ CONFIG_LIBCURL_CRYPTO_AUTH=y
# CONFIG_LIBCURL_MBEDTLS is not set
CONFIG_LIBCURL_OPENSSL=y
CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables=y
CONFIG_PACKAGE_iptables-zz-legacy=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
@@ -161,6 +177,7 @@ CONFIG_PACKAGE_lscpu=y
CONFIG_PACKAGE_nand-utils=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_OPENSSL_WITH_COMPRESSION=y
CONFIG_PACKAGE_procd-ujail=m
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-rpcsys=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
@@ -284,3 +301,10 @@ CONFIG_BUSYBOX_CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
CONFIG_BUSYBOX_CONFIG_FEATURE_VOLUMEID_UBIFS=y
CONFIG_BUSYBOX_CONFIG_TIMEOUT=y
CONFIG_BUSYBOX_CONFIG_NOHUP=y
# Use fw3 iptables-based instead of newer nftables-based fw4
# TODO: for now we cannot build an image with fw3 and luci-app-firewall (i.e. fw3)
# Enabling luci-app-firewall enables fw4
# CONFIG_PACKAGE_luci-app-firewall is not set
CONFIG_PACKAGE_firewall=y
# CONFIG_PACKAGE_firewall4 is not set

View File

@@ -2,57 +2,65 @@
function feeds_update {
developer=0
override=1
start=$(date -u +'%s');
while getopts "n" opt; do
case $opt in
n)
override=0
;;
esac
done
developer=0
override=1
start=$(date -u +'%s')
while getopts "n" opt; do
case $opt in
n)
override=0
;;
esac
done
git remote -v | grep -qE '(git@|ssh://)' && developer=1
git remote -v | grep -qE '(git@|ssh://)' && developer=1
cp .config .genconfig_config_bak
cp .config .genconfig_config_bak
#if -d argument is passed, clone feeds with ssh instead of http
if [ $developer == 1 ]; then
./scripts/feeds update -g
else
./scripts/feeds update
fi
#if -d argument is passed, clone feeds with ssh instead of http
if [ $developer == 1 ]; then
./scripts/feeds update -g
else
./scripts/feeds update
fi
./scripts/feeds update -ai
# replace core packages with iopsys versions
if [ $override == 1 ]; then
# replace core packages with iopsys versions
if [ $override == 1 ]; then
./scripts/feeds install -f -p openwrt_core -a
fi
fi
# targets need to be installed explicitly
for target in $(ls ./feeds/targets)
do
rm -f target/linux/$target
./scripts/feeds install -p targets $target
done
# targets need to be installed explicitly
for target in $(ls ./feeds/targets); do
rm -f target/linux/$target
./scripts/feeds install -p targets $target
done
# install all packages
./scripts/feeds install -a
# Workaround for bug in 22.03.0-rc4 where installed target path has been
# moved to target/linux/feeds but Config.in and Makefile from installed
# targets are not properly included from the new location.
# This hack is to be removed once the issues are fixed.
# Note that the above block of code might no longer necessary because
# targets no longer need to be installed explicitly.
echo "Working around installed-target-bug"
for f in target/linux/feeds/*; do
ln -vsf "feeds/$(basename "$f")" "target/linux/$(basename "$f")"
done
# remove broken symlinks ( for packages that are no longer in the feed )
find -L package/feeds -maxdepth 2 -type l -delete
# install all packages
./scripts/feeds install -a
cp .genconfig_config_bak .config
make defconfig
# remove broken symlinks ( for packages that are no longer in the feed )
find -L package/feeds -maxdepth 2 -type l -delete
# record when we last run this script
touch tmp/.iop_bootstrap
cp .genconfig_config_bak .config
make defconfig
# always return true
exit 0
# record when we last run this script
touch tmp/.iop_bootstrap
# always return true
exit 0
}
register_command "feeds_update" "Update feeds to point to commit hashes from feeds.conf"

View File

@@ -13,11 +13,13 @@ function genconfig {
export DEVELOPER=0
target="bogus"
target_config_path=""
brcm63xx_arm="target/linux/iopsys-brcm63xx-arm"
ramips="target/linux/iopsys-ramips"
econet="target/linux/iopsys-econet"
x86="target/linux/iopsys-x86"
armvirt="target/linux/iopsys-armvirt"
brcmbca_feed="target/linux/feeds/brcmbca"
ramips_feed="target/linux/feeds/iopsys-ramips"
airoha_feed="target/linux/feeds/airoha"
x86_feed="target/linux/feeds/iopsys-x86"
armvirt_feed="target/linux/feeds/iopsys-armvirt"
mediatek_feed="target/linux/feeds/iopsys-mediatek"
qualcomm_ipq95xx_feed="target/linux/feeds/ipq95xx"
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
@@ -83,8 +85,8 @@ function genconfig {
[ -n "$profile" ] || return
if [ -n "$TARGET" -a -d "./target/linux/$TARGET" ]; then
local targetpath="./target/linux/$TARGET"
if [ -n "$TARGET" -a -d "./target/linux/feeds/$TARGET" ]; then
local targetpath="./target/linux/feeds/$TARGET"
local profiles=
local pfound=0
@@ -107,19 +109,23 @@ function genconfig {
return
fi
[ -e $brcm63xx_arm/genconfig ] &&
iopsys_brcm63xx_arm=$(cd $brcm63xx_arm; ./genconfig)
[ -e $ramips/genconfig ] &&
iopsys_ramips=$(cd $ramips; ./genconfig)
[ -e $econet/genconfig ] &&
iopsys_econet=$(cd $econet; ./genconfig)
[ -e $x86/genconfig ] &&
iopsys_x86=$(cd $x86; ./genconfig)
[ -e $armvirt/genconfig ] &&
iopsys_armvirt=$(cd $armvirt; ./genconfig)
[ -e $brcmbca_feed/genconfig ] &&
brcmbca=$(cd $brcmbca_feed; ./genconfig)
[ -e $ramips_feed/genconfig ] &&
iopsys_ramips=$(cd $ramips_feed; ./genconfig)
[ -e $airoha_feed/genconfig ] &&
airoha=$(cd $airoha_feed; ./genconfig)
[ -e $x86_feed/genconfig ] &&
iopsys_x86=$(cd $x86_feed; ./genconfig)
[ -e $armvirt_feed/genconfig ] &&
iopsys_armvirt=$(cd $armvirt_feed; ./genconfig)
[ -e $mediatek_feed/genconfig ] &&
iopsys_mediatek=$(cd $mediatek_feed; ./genconfig)
[ -e $qualcomm_ipq95xx_feed/genconfig ] &&
ipq95xx=$(cd $qualcomm_ipq95xx_feed; ./genconfig)
if [ "$profile" == "LIST" ]; then
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_econet iopsys_x86 iopsys_armvirt; do
for list in brcmbca iopsys_ramips airoha iopsys_x86 iopsys_armvirt iopsys_mediatek ipq95xx; do
echo "$list based boards:"
for b in ${!list}; do
echo -e "\t$b"
@@ -128,10 +134,10 @@ function genconfig {
return
fi
for p in $iopsys_brcm63xx_arm; do
for p in $brcmbca; do
if [ $p == $profile ]; then
target="iopsys_brcm63xx_arm"
target_config_path="$brcm63xx_arm/config"
target="brcmbca"
target_config_path="$brcmbca_feed/config"
return
fi
done
@@ -139,15 +145,15 @@ function genconfig {
for p in $iopsys_ramips; do
if [ $p == $profile ]; then
target="iopsys_ramips"
target_config_path="$ramips/config"
target_config_path="$ramips_feed/config"
return
fi
done
for p in $iopsys_econet; do
for p in $airoha; do
if [ $p == $profile ]; then
target="iopsys_econet"
target_config_path="$econet/config"
target="airoha"
target_config_path="$airoha_feed/config"
return
fi
done
@@ -155,7 +161,7 @@ function genconfig {
for p in $iopsys_x86; do
if [ $p == $profile ]; then
target="iopsys_x86"
target_config_path="$x86/config"
target_config_path="$x86_feed/config"
return
fi
done
@@ -163,7 +169,23 @@ function genconfig {
for p in $iopsys_armvirt; do
if [ $p == $profile ]; then
target="iopsys_armvirt"
target_config_path="$armvirt/config"
target_config_path="$armvirt_feed/config"
return
fi
done
for p in $iopsys_mediatek; do
if [ $p == $profile ]; then
target="iopsys_mediatek"
target_config_path="$mediatek_feed/config"
return
fi
done
for p in $ipq95xx; do
if [ $p == $profile ]; then
target="ipq95xx"
target_config_path="$qualcomm_ipq95xx_feed/config"
return
fi
done
@@ -319,19 +341,25 @@ function genconfig {
fi
# Special handling for targets which use TARGET_DEVICES
if [ "$target" = "iopsys_ramips" ]; then
subtarget="mt7621"
case "$target" in
iopsys_ramips | airoha | iopsys_mediatek | brcmbca | ipq95xx)
# This assumes the device name to be unique within one target,
# which is a fair assumption to make.
local mk_file="$(grep -Fx --files-with-matches "define Device/${BOARDTYPE}" "$target_config_path/../image/"*.mk)"
if [ -z "$mk_file" ]; then
echo "Error determining subtarget for $target / ${BOARDTYPE}"
return 1
fi
local subtarget="$(basename "${mk_file%.mk}")"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
echo "CONFIG_TARGET_DEVICE_${target}_${subtarget}_DEVICE_${BOARDTYPE}=y" >> .config
elif [ "$target" = "iopsys_econet" ]; then
subtarget="en7562"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
else
;;
*)
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${BOARDTYPE}=y" >> .config
fi
;;
esac
echo "$CUSTOMERS $BOARDTYPE" > $CURRENT_CONFIG_FILE

View File

@@ -12,11 +12,13 @@ function genconfig_min {
export DEVELOPER=0
target="bogus"
target_config_path=""
brcm63xx_arm="target/linux/iopsys-brcm63xx-arm"
ramips="target/linux/iopsys-ramips"
econet="target/linux/iopsys-econet"
x86="target/linux/iopsys-x86"
armvirt="target/linux/iopsys-armvirt"
brcmbca_feed="target/linux/feeds/brcmbca"
ramips_feed="target/linux/feeds/iopsys-ramips"
airoha_feed="target/linux/feeds/airoha"
x86_feed="target/linux/feeds/iopsys-x86"
armvirt_feed="target/linux/feeds/iopsys-armvirt"
mediatek_feed="target/linux/feeds/iopsys-mediatek"
qualcomm_ipq95xx_feed="target/linux/feeds/ipq95xx"
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
@@ -82,8 +84,8 @@ function genconfig_min {
[ -n "$profile" ] || return
if [ -n "$TARGET" -a -d "./target/linux/$TARGET" ]; then
local targetpath="./target/linux/$TARGET"
if [ -n "$TARGET" -a -d "./target/linux/feeds/$TARGET" ]; then
local targetpath="./target/linux/feeds/$TARGET"
local profiles=
local pfound=0
@@ -106,19 +108,23 @@ function genconfig_min {
return
fi
[ -e $brcm63xx_arm/genconfig ] &&
iopsys_brcm63xx_arm=$(cd $brcm63xx_arm; ./genconfig)
[ -e $ramips/genconfig ] &&
iopsys_ramips=$(cd $ramips; ./genconfig)
[ -e $econet/genconfig ] &&
iopsys_econet=$(cd $econet; ./genconfig)
[ -e $x86/genconfig ] &&
iopsys_x86=$(cd $x86; ./genconfig)
[ -e $armvirt/genconfig ] &&
iopsys_armvirt=$(cd $armvirt; ./genconfig)
[ -e $brcmbca_feed/genconfig ] &&
brcmbca=$(cd $brcmbca_feed; ./genconfig)
[ -e $ramips_feed/genconfig ] &&
iopsys_ramips=$(cd $ramips_feed; ./genconfig)
[ -e $airoha_feed/genconfig ] &&
airoha=$(cd $airoha_feed; ./genconfig)
[ -e $x86_feed/genconfig ] &&
iopsys_x86=$(cd $x86_feed; ./genconfig)
[ -e $armvirt_feed/genconfig ] &&
iopsys_armvirt=$(cd $armvirt_feed; ./genconfig)
[ -e $mediatek_feed/genconfig ] &&
iopsys_mediatek=$(cd $mediatek_feed; ./genconfig)
[ -e $qualcomm_ipq95xx_feed/genconfig ] &&
ipq95xx=$(cd $qualcomm_ipq95xx_feed; ./genconfig)
if [ "$profile" == "LIST" ]; then
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_econet iopsys_x86 iopsys_armvirt; do
for list in brcmbca iopsys_ramips airoha iopsys_x86 iopsys_armvirt iopsys_mediatek ipq95xx; do
echo "$list based boards:"
for b in ${!list}; do
echo -e "\t$b"
@@ -127,10 +133,10 @@ function genconfig_min {
return
fi
for p in $iopsys_brcm63xx_arm; do
for p in $brcmbca; do
if [ $p == $profile ]; then
target="iopsys_brcm63xx_arm"
target_config_path="$brcm63xx_arm/config"
target="brcmbca"
target_config_path="$brcmbca_feed/config"
return
fi
done
@@ -138,15 +144,15 @@ function genconfig_min {
for p in $iopsys_ramips; do
if [ $p == $profile ]; then
target="iopsys_ramips"
target_config_path="$ramips/config"
target_config_path="$ramips_feed/config"
return
fi
done
for p in $iopsys_econet; do
for p in $airoha; do
if [ $p == $profile ]; then
target="iopsys_econet"
target_config_path="$econet/config"
target="airoha"
target_config_path="$airoha_feed/config"
return
fi
done
@@ -154,7 +160,7 @@ function genconfig_min {
for p in $iopsys_x86; do
if [ $p == $profile ]; then
target="iopsys_x86"
target_config_path="$x86/config"
target_config_path="$x86_feed/config"
return
fi
done
@@ -162,7 +168,23 @@ function genconfig_min {
for p in $iopsys_armvirt; do
if [ $p == $profile ]; then
target="iopsys_armvirt"
target_config_path="$armvirt/config"
target_config_path="$armvirt_feed/config"
return
fi
done
for p in $iopsys_mediatek; do
if [ $p == $profile ]; then
target="iopsys_mediatek"
target_config_path="$mediatek_feed/config"
return
fi
done
for p in $ipq95xx; do
if [ $p == $profile ]; then
target="ipq95xx"
target_config_path="$qualcomm_ipq95xx_feed/config"
return
fi
done
@@ -310,19 +332,25 @@ function genconfig_min {
fi
# Special handling for targets which use TARGET_DEVICES
if [ "$target" = "iopsys_ramips" ]; then
subtarget="mt7621"
case "$target" in
iopsys_ramips | airoha | iopsys_mediatek | brcmbca | ipq95xx)
# This assumes the device name to be unique within one target,
# which is a fair assumption to make.
local mk_file="$(grep -Fx --files-with-matches "define Device/${BOARDTYPE}" "$target_config_path/../image/"*.mk)"
if [ -z "$mk_file" ]; then
echo "Error determining subtarget for $target / ${BOARDTYPE}"
return 1
fi
local subtarget="$(basename "${mk_file%.mk}")"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
echo "CONFIG_TARGET_DEVICE_${target}_${subtarget}_DEVICE_${BOARDTYPE}=y" >> .config
elif [ "$target" = "iopsys_econet" ]; then
subtarget="en7562"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
else
;;
*)
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${BOARDTYPE}=y" >> .config
fi
;;
esac
echo "$CUSTOMERS $BOARDTYPE" > $CURRENT_CONFIG_FILE

View File

@@ -48,7 +48,10 @@ function ssh_install_key {
local keys="$(get_ssh_public_keys)"
echo "Adding the following keys to $DROPBEAR_AUTHORIZED_KEYS_FILE on $host:"
echo "$keys"
ssh root@$host "echo '$keys' >> '$DROPBEAR_AUTHORIZED_KEYS_FILE'" && echo ok
ssh \
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
root@$host \
"echo '$keys' >> '$DROPBEAR_AUTHORIZED_KEYS_FILE'" && echo ok
}
register_command "ssh_install_key" "Install the users public ssh key on host running dropbear"

View File

@@ -1,344 +1,283 @@
# this is a developer helper script to install firmware on a remote host with SSH
function upd_usage {
echo "usage: $0 iopupgrade -t <host> -f <file> [opts] "
echo ""
echo " Default host is 192.168.1.1"
echo " Default firmware file is the newest one found"
echo " Default is to not keep configuration"
echo "opts:"
echo ""
echo " -i Interactive use, Allows to select firmware file"
echo " -n Do not do the final reboot of the target board"
echo " -c Keep configuration"
echo " -x Force install even if firmware is not for this board"
echo " -b Force install of bootloader regardless of version installed"
echo " -s Use sysupgade. old upgrade method, needed for old releases that do not have iopu"
echo "usage: $0 ssh_upgrade [-t <host>] [-f <file>] [opts] "
echo ""
echo " Default host is 192.168.1.1"
echo " Default firmware file is the latest one (last.{itb,pkgtb})"
echo " Default is to not keep configuration"
echo "opts:"
echo ""
echo " -i Interactive use, allows to select firmware file"
echo " -n Do not do the final reboot of the target board"
echo " -c Keep configuration"
echo " -x Force install even if firmware is not for this board"
echo " -b Force install of bootloader regardless of version installed"
}
function set_config_string {
eval `grep $1 .config`
eval $(grep $1 .config)
}
function upd_ask_ok {
echo "Will Continue with the following settings"
echo "-----------------------------------------"
printf "%20s: %s\n" "Firmare file" "$upd_fw_base"
printf "%20s: %s\n" "Host ip" "$upd_host"
printf "%20s: " "Reboot"; if [ "$upd_noreboot" == "0" ] ;then printf "Yes\n" ;else printf "No\n";fi
printf "%20s: " "Keep config"; if [ "$upd_keepconf" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi
printf "%20s: " "Force bootloader"; if [ "$upd_forceboot" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi
printf "%20s: " "Force image upgrade"; if [ "$upd_forceimage" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi
printf "%20s: " "Use sysupgrade"; if [ "$upd_sysupgrade" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi
echo "-----------------------------------------"
echo "Will continue with the following settings:"
echo "-----------------------------------------"
printf "%20s: %s\n" "Firmware file" "$upd_fw_base"
printf "%20s: %s\n" "Host IP" "$upd_host"
printf "%20s: " "Reboot"
if [ "$upd_noreboot" == "0" ]; then printf "Yes\n"; else printf "No\n"; fi
printf "%20s: " "Keep config"
if [ "$upd_keepconf" == "1" ]; then printf "Yes\n"; else printf "No\n"; fi
printf "%20s: " "Force bootloader"
if [ "$upd_forceboot" == "1" ]; then printf "Yes\n"; else printf "No\n"; fi
printf "%20s: " "Force image upgrade"
if [ "$upd_forceimage" == "1" ]; then printf "Yes\n"; else printf "No\n"; fi
echo "-----------------------------------------"
if [ "$upd_sysupgrade" == "0" ]
then
if [ "$upd_keepconf" == "1" ] ;then echo "keeping config is just a fantasy it's not yet implemented, try sysupgrade";fi
fi
echo -n "Continue? [Y/n/q]:"
read answer
echo -n "Continue? [Y/n/q]:"
read answer
case $answer in
n|N)
return 1;;
q|Q)
exit 1;;
y|Y|*)
return 0;;
esac
case $answer in
n | N)
return 1
;;
q | Q)
exit 1
;;
y | Y | *)
return 0
;;
esac
}
function upd_select_file {
dialog --keep-tite --title "To select a file, use TAB/ARROW to highlight then press SPACEBAR -> RETURN" \
--fselect "${upd_fw:-bin/targets/$CONFIG_TARGET_BOARD/$CONFIG_TARGET_SUBTARGET/}" \
$((lines - 10)) $((cols - 5)) \
2>$tempfile
dialog --keep-tite --title "To select file use TAB/ARROW to hilight then press SPACEBAR -> RETURN" \
--fselect "bin/targets/$CONFIG_TARGET_BOARD/generic/" \
$((lines -10)) $((cols -5)) \
2> $tempfile
new_file=$(cat $tempfile)
if [ -n "$new_file" ]
then
upd_fw="$new_file"
upd_fw_base=$(basename $upd_fw);
fi
new_file=$(cat $tempfile)
if [ -n "$new_file" ]; then
upd_fw="$new_file"
upd_fw_base=$(basename $upd_fw)
fi
}
function upd_select_target {
dialog --keep-tite --title "Input the hostname/IP of the target board" \
--inputbox "Name/IP" \
$((lines - 10)) $((cols - 5)) \
"$upd_host" \
2>$tempfile
dialog --keep-tite --title "Input the name/ip number of target board" \
--inputbox "Name/IP" \
$((lines -10)) $((cols -5)) \
"$upd_host" \
2> $tempfile
new_file=$(cat $tempfile)
if [ -n "$new_file" ]
then
upd_host="$new_file"
fi
new_file=$(cat $tempfile)
if [ -n "$new_file" ]; then
upd_host="$new_file"
fi
}
function upd_select_reboot {
dialog --keep-tite --radiolist "Should the board reboot after download finished" \
$((lines -5)) $((cols -5)) $((lines -5 -5)) \
"Reboot" "Restart board after done" `if [ "$upd_noreboot" == "0" ] ;then echo "ON" ;else echo "OFF";fi` \
"No reboot" "Continue running old system" `if [ "$upd_noreboot" == "1" ] ;then echo "ON" ;else echo "OFF";fi` \
2> $tempfile
dialog --keep-tite --radiolist "Should the board reboot after download finished" \
$((lines - 5)) $((cols - 5)) $((lines - 5 - 5)) \
"Reboot" "Restart board after done" $(if [ "$upd_noreboot" == "0" ]; then echo "ON"; else echo "OFF"; fi) \
"No reboot" "Continue running old system" $(if [ "$upd_noreboot" == "1" ]; then echo "ON"; else echo "OFF"; fi) \
2>$tempfile
res=$(cat $tempfile)
case $res in
res=$(cat $tempfile)
case $res in
"No reboot")
upd_noreboot=1
;;
upd_noreboot=1
;;
"Reboot")
upd_noreboot=0
;;
esac
upd_noreboot=0
;;
esac
}
function upd_select_config {
dialog --keep-tite --radiolist "Should the configuration be keept" \
$((lines -5)) $((cols -5)) $((lines -5 -5)) \
"Keep" "Keep the config from old system" `if [ "$upd_keepconf" == "1" ] ;then echo "ON" ;else echo "OFF";fi` \
"Default" "Use default config for new system" `if [ "$upd_keepconf" == "0" ] ;then echo "ON" ;else echo "OFF";fi` \
2> $tempfile
dialog --keep-tite --radiolist "Should the configuration be kept" \
$((lines - 5)) $((cols - 5)) $((lines - 5 - 5)) \
"Keep" "Keep the config from old system" $(if [ "$upd_keepconf" == "1" ]; then echo "ON"; else echo "OFF"; fi) \
"Default" "Use default config for new system" $(if [ "$upd_keepconf" == "0" ]; then echo "ON"; else echo "OFF"; fi) \
2>$tempfile
res=$(cat $tempfile)
case $res in
res=$(cat $tempfile)
case $res in
"Keep")
upd_keepconf=1
;;
upd_keepconf=1
;;
"Default")
upd_keepconf=0
;;
esac
upd_keepconf=0
;;
esac
}
function upd_select_forceboot {
dialog --keep-tite --radiolist "Should the boot loader be updated reagardless of version installed" \
$((lines -5)) $((cols -5)) $((lines -5 -5)) \
"Force" "Alwasy update boot loader" `if [ "$upd_forceboot" == "1" ] ;then echo "ON" ;else echo "OFF";fi` \
"Version check" "Only upgrade if version is newer" `if [ "$upd_forceboot" == "0" ] ;then echo "ON" ;else echo "OFF";fi` \
2> $tempfile
dialog --keep-tite --radiolist "Should the boot loader be updated regardless of the version installed" \
$((lines - 5)) $((cols - 5)) $((lines - 5 - 5)) \
"Force" "Always update boot loader" $(if [ "$upd_forceboot" == "1" ]; then echo "ON"; else echo "OFF"; fi) \
"Version check" "Only upgrade if version is newer" $(if [ "$upd_forceboot" == "0" ]; then echo "ON"; else echo "OFF"; fi) \
2>$tempfile
res=$(cat $tempfile)
case $res in
res=$(cat $tempfile)
case $res in
"Force")
upd_forceboot=1
;;
upd_forceboot=1
;;
"Version check")
upd_forceboot=0
;;
esac
upd_forceboot=0
;;
esac
}
function upd_select_forceimage {
dialog --keep-tite --radiolist "Should the image be stored in flash even if sanity checks would reject it" \
$((lines -5)) $((cols -5)) $((lines -5 -5)) \
"Force" "Dissable sanity check and force use of image (dangerous)" `if [ "$upd_forceimage" == "1" ] ;then echo "ON" ;else echo "OFF";fi` \
"Only compatible" "Normal checks apply" `if [ "$upd_forceimage" == "0" ] ;then echo "ON" ;else echo "OFF";fi` \
2> $tempfile
dialog --keep-tite --radiolist "Should the image be stored in flash even if sanity checks would reject it" \
$((lines - 5)) $((cols - 5)) $((lines - 5 - 5)) \
"Force" "Disable sanity check and force use of image (dangerous)" $(if [ "$upd_forceimage" == "1" ]; then echo "ON"; else echo "OFF"; fi) \
"Only compatible" "Normal checks apply" $(if [ "$upd_forceimage" == "0" ]; then echo "ON"; else echo "OFF"; fi) \
2>$tempfile
res=$(cat $tempfile)
case $res in
res=$(cat $tempfile)
case $res in
"Force")
upd_forceimage=1
;;
upd_forceimage=1
;;
"Only compatible")
upd_forceimage=0
;;
esac
}
function upd_select_sysupgrade {
dialog --keep-tite --radiolist "Use the old way to upgrade a board" \
$((lines -5)) $((cols -5)) $((lines -5 -5)) \
"iopu" "Use the iop upgrade methode" `if [ "$upd_sysupgrade" == "0" ] ;then echo "ON" ;else echo "OFF";fi` \
"sysupgrade" "Use the old sysupgrade methode" `if [ "$upd_sysupgrade" == "1" ] ;then echo "ON" ;else echo "OFF";fi` \
2> $tempfile
res=$(cat $tempfile)
case $res in
"iopu")
upd_sysupgrade=0
;;
"sysupgrade")
upd_sysupgrade=1
;;
esac
upd_forceimage=0
;;
esac
}
function upd_select {
dialog --keep-tite --ok-label "Select" --cancel-label "Done" --menu "Select item to change" \
$((lines - 5)) $((cols - 5)) $((lines - 5 - 5)) \
"Firmware file" "$upd_fw_base" \
"Host IP" "$upd_host" \
"Reboot" $(if [ "$upd_noreboot" == "0" ]; then printf "Yes\n"; else printf "No\n"; fi) \
"Keep config" $(if [ "$upd_keepconf" == "1" ]; then printf "Yes\n"; else printf "No\n"; fi) \
"Force bootloader" $(if [ "$upd_forceboot" == "1" ]; then printf "Yes\n"; else printf "No\n"; fi) \
"Force image upgrade" $(if [ "$upd_forceimage" == "1" ]; then printf "Yes\n"; else printf "No\n"; fi) \
2>$tempfile
dialog --keep-tite --ok-label "Select" --cancel-label "Done" --menu "Select Item to change" \
$((lines -5)) $((cols -5)) $((lines -5 -5)) \
"Firmare file" "$upd_fw_base"\
"Host ip" "$upd_host" \
"Reboot" `if [ "$upd_noreboot" == "0" ] ;then printf "Yes\n" ;else printf "No\n";fi` \
"Keep config" `if [ "$upd_keepconf" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi` \
"Force bootloader" `if [ "$upd_forceboot" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi` \
"Force image upgrade" `if [ "$upd_forceimage" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi` \
"sysupgrade" `if [ "$upd_sysupgrade" == "1" ] ;then printf "Yes\n" ;else printf "No\n";fi` \
2> $tempfile
case $(cat $tempfile) in
"Firmare file")
upd_select_file
;;
"Host ip")
upd_select_target
;;
case $(cat $tempfile) in
"Firmware file")
upd_select_file
;;
"Host IP")
upd_select_target
;;
"Reboot")
upd_select_reboot
;;
upd_select_reboot
;;
"Keep config")
upd_select_config
;;
upd_select_config
;;
"Force bootloader")
upd_select_forceboot
;;
upd_select_forceboot
;;
"Force image upgrade")
upd_select_forceimage
;;
"sysupgrade")
upd_select_sysupgrade
;;
upd_select_forceimage
;;
*)
return
;;
esac
upd_select
return
;;
esac
upd_select
}
function upd_select_start {
lines=$(tput lines)
cols=$(tput cols)
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $tempfile" 0 1 2 5 15
upd_select
lines=$(tput lines)
cols=$(tput cols)
tempfile="$(mktemp)"
trap "rm -f $tempfile" 0 1 2 5 15
upd_select
}
function ssh_upgrade {
upd_noreboot=0
upd_forceboot=0
upd_keepconf=0
upd_forceimage=0
upd_fw_base=""
upd_fw=""
upd_host="192.168.1.1"
upd_sysupgrade=1
do_dialog=0
upd_noreboot=0
upd_forceboot=0
upd_keepconf=0
upd_forceimage=0
upd_fw_base=""
upd_fw=""
upd_host="192.168.1.1"
do_dialog=0
while getopts "f:hnxt:iscb" opt; do
case $opt in
n)
upd_noreboot=1
;;
x)
upd_forceimage=1
;;
b)
upd_forceboot=1
;;
c)
upd_keepconf=1
;;
v)
verbose=$OPTARG
;;
f)
upd_fw=$OPTARG
;;
t)
upd_host=$OPTARG
;;
i)
do_dialog=1
;;
s)
upd_sysupgrade=1
;;
h)
upd_usage
exit 1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
if [ -n "$upd_fw" ]
then
upd_fw_base=$(basename $upd_fw);
else
set_config_string CONFIG_TARGET_BOARD
firmwares=$(cd bin/targets/$CONFIG_TARGET_BOARD/generic/; ls -t *[0-9].y[3])
# if target uses pkgtb
if [ -z "$firmwares"]
then
# pkgtb files can not be streamed so copy over the file witch scp
use_scp=1
firmwares=$(cd bin/targets/$CONFIG_TARGET_BOARD/generic/; ls -t last.pkgtb)
fi
for upd_fw_base in $firmwares
do
#echo "firmware $upd_fw"
break
while getopts "f:hnxt:icb" opt; do
case $opt in
n)
upd_noreboot=1
;;
x)
upd_forceimage=1
;;
b)
upd_forceboot=1
;;
c)
upd_keepconf=1
;;
v)
verbose=$OPTARG
;;
f)
upd_fw=$OPTARG
;;
t)
upd_host=$OPTARG
;;
i)
do_dialog=1
;;
h)
upd_usage
exit 1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
upd_fw="bin/targets/$CONFIG_TARGET_BOARD/generic/$upd_fw_base"
fi
[ $do_dialog -eq 1 ] && upd_select_start
if ! upd_ask_ok
then
upd_select_start
if ! upd_ask_ok
then
exit 1
if [ -z "$upd_fw" ]; then
set_config_string CONFIG_TARGET_BOARD
set_config_string CONFIG_TARGET_SUBTARGET
upd_fw="$(realpath -q --canonicalize-existing --relative-to=. "bin/targets/$CONFIG_TARGET_BOARD/$CONFIG_TARGET_SUBTARGET/"last.{pkgtb,itb})"
if [ -z "$upd_fw" ] && [ $do_dialog -eq 0 ]; then
echo "Could not find image. Check that last.{itb,pkgtb} exists or specify an image using -f <image> or -i (interactive)." >&2
return 1
fi
fi
fi
upd_fw_base="$(basename "$upd_fw")"
if [ ! -f $upd_fw ]
then
echo "firmware file $firmware do not exist"
exit 1
fi
[ $do_dialog -eq 1 ] && upd_select_start
if [ $upd_sysupgrade -eq 0 ]
then
extra_args=""
[ $upd_noreboot -eq 1 ] && extra_args="$extra_args -n"
[ $upd_forceimage -eq 1 ] && extra_args="$extra_args -x"
[ $upd_forceboot -eq 1 ] && extra_args="$extra_args -b"
file_size_kb=`du -k "$upd_fw" | cut -f1`
if [ "$use_scp" == "1" ]
then
scp $upd_fw root@$upd_host:/tmp/ &&
ssh -o ConnectTimeout=60 root@$upd_host "iopu $extra_arg -f /tmp/$upd_fw_base"
else
cat $upd_fw | pv -s ${file_size_kb}k | ssh root@$upd_host "iopu $extra_args"
if ! upd_ask_ok; then
upd_select_start
if ! upd_ask_ok; then
exit 1
fi
fi
else
extra_args=""
[ $upd_noreboot -eq 1 ] && extra_args="$extra_args -d"
[ $upd_keepconf -eq 0 ] && extra_args="$extra_args -n"
scp $upd_fw root@$upd_host:/tmp/ &&
ssh -o ConnectTimeout=60 root@$upd_host "sysupgrade -v $extra_args /tmp/$upd_fw_base" &&
echo "sysupgrade done!"
fi
if [ ! -f $upd_fw ]; then
echo "Firmware file $firmware does not exist."
exit 1
fi
extra_args=""
[ $upd_noreboot -eq 1 ] && extra_args="$extra_args --no-reboot"
[ $upd_forceimage -eq 1 ] && extra_args="$extra_args --force"
[ $upd_keepconf -eq 0 ] && extra_args="$extra_args -n"
[ $upd_forceboot -eq 1 ] && extra_args="$extra_args --force-loader-upgrade"
pv "$upd_fw" |
ssh \
-o ConnectTimeout=60 \
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
root@"$upd_host" \
sh -c "cat > '/tmp/$upd_fw_base' && (set -x && sysupgrade -v $extra_args /tmp/$upd_fw_base)" ||
echo "Sysupgrade failed" >&2 && return 1
}
register_command "ssh_upgrade" "-h <host> -f <file> [opts] Install firmware on remote host with SSH"
register_command "ssh_upgrade" "-t <host> -f <file> [opts] Install firmware on remote host with SSH"

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

@@ -13,5 +13,22 @@ config AGENT_ISLAND_PREVENTION
config AGENT_EASYMESH_R2_CERT
bool "Compile for WFA test bed"
config AGENT_EASYMESH_VENDOR_EXT
bool "Enable extra features through Easymesh vendor extension"
default y
config AGENT_EASYMESH_VENDOR_EXT_OUI_DEFAULT
string
default "\\\\x11\\\\x22\\\\x33"
config AGENT_EASYMESH_VENDOR_EXT_OUI
string "Vendor OUI in '\\\\xAB\\\\xCD\\\\xEF' format"
default AGENT_EASYMESH_VENDOR_EXT_OUI_DEFAULT
help
Extra features not covered by the base Easymesh specification can be
enabled through AGENT_EASYMESH_VENDOR_EXT. Please provide the Vendor's OUI
through which such features would be exposed.
endmenu
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
PKG_NAME:=map-agent
PKG_VERSION:=7.2.2
PKG_VERSION:=2.10.3.27
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=8168d68c118d0dde0ff798fd0c8ed1d6a18bc99d
PKG_SOURCE_VERSION:=7b4292e7149fc40ed8c2610ca5c674710432d30b
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
LOCAL_DEV=0
@@ -28,7 +28,7 @@ define Package/map-agent
CATEGORY:=Utilities
TITLE:=WiFi multi-AP Agent (EasyMesh R2)
DEPENDS:=+libwifi +libuci +libubox +ubus +libeasy +libieee1905 +ieee1905 \
+map-plugin
+map-plugin +ip-bridge
endef
@@ -56,6 +56,7 @@ endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-Wno-error=deprecated-declarations \
-D_GNU_SOURCE
ifeq ($(CONFIG_AGENT_SYNC_DYNAMIC_CNTLR_CONFIG),y)
@@ -70,6 +71,12 @@ ifeq ($(CONFIG_AGENT_EASYMESH_R2_CERT),y)
TARGET_CFLAGS += -DEASYMESH_R2_CERT
endif
ifeq ($(CONFIG_AGENT_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=\\\"$(CONFIG_AGENT_EASYMESH_VENDOR_EXT_OUI)\\\"
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT
endif
MAKE_PATH:=src
define Package/map-agent/install
@@ -77,6 +84,8 @@ define Package/map-agent/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/lib/wifi
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/script/* $(1)/lib/wifi/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mapagent $(1)/usr/sbin/
endef

View File

@@ -10,6 +10,7 @@ config agent 'agent'
config dynamic_backhaul
option missing_bh_timer '60'
option missing_bh_reconfig_timer '1800'
config controller_select
option id 'auto'

View File

@@ -3,7 +3,7 @@
. /lib/network/utils.sh
conn_ports_file="/tmp/map.connected.ports"
map_bh_file="/tmp/multiap.backhaul"
map_bh_file="/var/run/multiap/multiap.backhaul"
al_bridge="$(uci -q get mapagent.agent.al_bridge)"
[ "${al_bridge:0:3}" = "br-" ] || exit 0
al_brnet="${al_bridge:3}"

View File

@@ -10,56 +10,9 @@ IS_CFG_VALID=1
MAP_DEV="map_dev"
MAP_IF="map"
create_map() {
ip link add lei type veth peer name lei_map 2>/dev/null
ip link add link lei name lei_lan type vlan id 1 2>/dev/null
uci -q set network.${MAP_DEV}=device
uci -q set network.${MAP_DEV}.name=br-map
uci -q set network.${MAP_DEV}.type=bridge
uci -q show network.${MAP_DEV}.ports | grep -q lei_map || {
uci -q add_list network.${MAP_DEV}.ports='lei_map'
}
uci -q set network.${MAP_IF}=interface
uci -q set network.${MAP_IF}.device=br-map
uci -q set network.${MAP_IF}.is_lan=1
uci -q show network.br_lan.ports | grep -q lei_lan || {
uci -q add_list network.br_lan.ports="lei_lan"
}
uci -q set mapagent.agent.al_bridge=br-map
uci -q commit
ubus call network reload
ubus -t 5 wait_for network.interface.map
brctl addif br-map lei_map 2>/dev/null
brctl addif br-lan lei_lan 2>/dev/null
ip link set lei up 2>/dev/null
ip link set lei_map up 2>/dev/null
ip link set lei_lan up 2>/dev/null
}
remove_map() {
ip link delete ${MAP_VETH} &>/dev/null
uci -q delete network.${MAP_DEV}
uci -q delete network.${MAP_IF}
uci -q set mapagent.agent.al_bridge=br-lan
uci -q commit
ubus call network reload
}
start_dynbhd_service() {
rm -f /tmp/multiap.backhaul
rm -f /var/run/multiap/multiap.backhaul
procd_open_instance
procd_set_param command "/usr/sbin/dynbhd"
procd_set_param respawn
@@ -116,7 +69,7 @@ validate_ap_section() {
uci_validate_section mapagent $section "${1}" \
'ifname:string' \
'device:string' \
'band:or("2", "5")' \
'band:or("2", "5", "6")' \
'enabled:bool:true' \
'onboarded:bool:false' \
'ssid:string' \
@@ -138,7 +91,7 @@ validate_radio_section() {
uci_validate_section mapagent $section "${1}" \
'device:string' \
'band:or("2", "5")' \
'band:or("2", "5", "6")' \
'configured:bool:false' \
'onboarded:bool:false' \
'dedicated_backhaul:bool:false' \
@@ -187,6 +140,8 @@ validate_dyn_bh_section() {
uci_validate_section mapagent $section "${1}" \
'missing_bh_timer:range(1,255)'
uci_validate_section mapagent $section "${1}" \
'missing_bh_reconfig_timer:range(0,65535)'
[ "$?" -ne 0 ] && {
logger -s -t "mapagent" "Validation of dynamic backhaul section failed"
@@ -213,6 +168,10 @@ validate_agent_config() {
return 0
}
create_dir() {
mkdir -p /var/run/multiap
}
start_service() {
[ -f /usr/sbin/dynbhd ] && start_dynbhd_service
@@ -227,11 +186,8 @@ start_service() {
config_get_bool enabled agent enabled 1
[ "$enabled" -eq 0 ] && return 1
local ts
config_get_bool ts agent vlan_segregation 0
[ "$ts" -eq 1 ] && create_map #|| remove_map
procd_open_instance
create_dir
procd_set_param command "/usr/sbin/mapagent" "-d"
procd_set_param respawn
# procd_set_param stdout 1
@@ -239,10 +195,6 @@ start_service() {
procd_close_instance
}
#stop_service() {
# remove_map
#}
service_triggers()
{
procd_add_reload_trigger "mapagent"

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

@@ -1,849 +0,0 @@
#!/bin/sh
# functions
# wireless_teardown - tear down ifaces based on mapagent config
# setup_network - prepare /etc/config/network if necessary
# setup_wireless - prepare /etc/config/wireless based on mapagent config
# write_credentials - write bBSS credentials to fBSS
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
. /lib/wifi/traffic_separation
MAPFILE="/tmp/multiap.backhaul"
diff=0
onbrd_bssid=0
onbrd_band=0
usage() {
cat <<EOF
Usage: $0 [wireless_teardown|setup_network|setup_wireless|write_credentials]
Platform specific Multi-AP script to prepare network and wifi subsystem based on
mapagent configuration.
wireless_teardown - tear down ifaces in /etc/config/wireless
setup_network - prepare /etc/config/network
setup_wireless - prepare /etc/config/wireless
write_credentials - write bBSS credentials to fBSS
EOF
exit 1
}
type_to_multi_ap () {
type="$1"
if [ "$type" = "backhaul" ]; then
echo "1"
return
elif [ "$type" = "fronthaul" ]; then
echo "2"
return
elif [ "$type" = "combined" ]; then
echo "3"
return
fi
echo "0"
}
get_type_by_section() {
section="$1"
config_get type $section type "0"
echo "$(type_to_multi_ap $type)"
}
sync_credentials() {
bands=""
json_init
mapagent_process_fh() {
local section=$1
local dev=$2
multi_ap=$(get_type_by_section $section)
[ "$multi_ap" == "0" ] && return
config_get device $section device
[ "$dev" != "$device" ] && return
config_get band $section band
config_get ssid $section ssid
config_get encryption $section encryption
config_get key $section key
section=$(uci add ieee1905 ap)
[ "$section" == "" ] && return
uci -q set ieee1905.${section}.band=$band
uci -q set ieee1905.${section}.ssid="$ssid"
uci -q set ieee1905.${section}.encryption=$encryption
uci -q set ieee1905.${section}.key="$key"
json_select "$band" > /dev/null
if [ "$?" = "0" ]; then
json_get_keys keys
for key in ${keys};
do
json_get_var val "$key"
uci -q set ieee1905.${section}.$key="$val"
done
json_select ..
fi
}
mapagent_process_radio() {
local section=$1
config_get device $section device
config_get band $section band
config_get dedicated_backhaul $section dedicated_backhaul 0
[ "$dedicated_backhaul" != "0" ] && return
for b in $bands; do
if [ "$b" == "$band" ]; then
return
fi
done
config_foreach mapagent_process_fh ap $device
bands="$bands $band"
}
ieee1905_del_ap() {
append_value() {
local section=$1
local key=$2
shift
shift
while [ "$key" != "" ]; do
val=$(uci -q get ieee1905.$section.$key)
[ "$val" = "" ] && {
key=$1
shift
continue
}
json_add_string "$key" ${val}
key=$1
shift
done
}
local section=$1
local band
config_get band $section band
json_select "$band" > /dev/null
rc=$?
[ "$rc" != "0" ] && json_add_object "$band"
append_value $section "manufacturer" "model_name" "device_name" "model_number" "serial_number" "device_type" "os_version"
if [ "$rc" != "0" ]; then
json_close_object
else
json_select ..
fi
uci -q delete ieee1905.${section}
}
config_load ieee1905
config_foreach ieee1905_del_ap ap
config_load mapagent
config_foreach mapagent_process_radio radio
uci commit ieee1905
json_cleanup
}
write_credentials() {
config_load mapagent
mapagent_apply_wireless() {
write_wireless() {
local section=$1
local map_ifname=$2
local bk_ssid="$3"
local bk_key="$4"
config_get ifname $section ifname
#echo found device=$device map=$multi_ap ifname=$ifname mapifname=$map_ifname
[ "$ifname" != "$map_ifname" ] && return
#echo applying bk_ssid = "$bk_ssid" bk_key = "$bk_key"
uci -q set wireless.${section}.multi_ap_backhaul_ssid="$bk_ssid"
uci -q set wireless.${section}.multi_ap_backhaul_key="$bk_key"
}
config_load wireless
config_foreach write_wireless wifi-iface "$1" "$2" "$3"
}
mapagent_find_fbss() {
local section=$1
local dev=$2
local bk_ssid="$3"
local bk_key="$4"
multi_ap=$(get_type_by_section $section)
[ "$multi_ap" == "0" ] && return
config_get device $section device
#echo found dev=$dev device=$device map=$multi_ap
[ "$device" != "$dev" ] && return
[ "$multi_ap" != "2" ] && return
config_get ifname $section ifname
#echo applying bk_ssid = "$bk_ssid" bk_key = "$bk_key"
# subshell in hopes to maintain mapagent config loaded
(mapagent_apply_wireless $ifname "$bk_ssid" "$bk_key")
}
mapagent_find_bbss() {
local section=$1
local dev=$2
multi_ap=$(get_type_by_section $section)
[ "$multi_ap" == "0" ] && return
config_get device $section device
config_get enabled $section enabled "1"
#echo found dev=$dev device=$device map=$multi_ap
[ "$enabled" == "0" ] && return
[ "$device" != "$dev" ] && return
[ "$multi_ap" != "1" ] && return
config_get ssid $1 ssid
config_get key $1 key
#echo found ssid="$ssid" key="$key"
config_foreach mapagent_find_fbss ap $dev "$ssid" "$key"
}
mapagent_process_radio() {
local section=$1
config_get device $section device
#echo found dev=$dev
config_foreach mapagent_find_bbss ap $device
}
config_foreach mapagent_process_radio radio
uci commit wireless
}
set_network() {
local ifname=$1
local num=$2
local bssid=$3
wpa_cli -i $ifname set_n $num bssid $bssid
}
bsta_steer() {
local ifname=$1
local bssid=$2
rc=$(wpa_cli -i $ifname set_n 0 bssid $bssid)
[ "$rc" == "FAIL" ] && {
echo "1"
return;
}
rc=$(wpa_cli -i $ifname roam $bssid)
[ "$rc" == "FAIL" ] && {
echo "1"
return;
}
}
write_bsta_config() {
local ifname=$1
#echo diff = $diff > /dev/console
config_load mapagent
mapagent_apply_wl_bsta() {
apply_config() {
local section=$1
local bsta=$2
local bssid=$3
config_get ifname $section ifname
[ "$bsta" == "$ifname" ] || return
#echo setting diff = $diff > /dev/console
old_bssid="$(uci -q get wireless.${section}.bssid)"
[ "$old_bssid" == "$bssid" ] && break
uci -q set wireless.${section}.bssid=$bssid
wpa_cli -i "$bsta" set_n 0 bssid $bssid
wpa_cli -i "$bsta" save_config
echo 1
}
config_load wireless
config_foreach apply_config wifi-iface $1 $2
uci commit wireless
}
mapagent_process_bk() {
local section=$1
local bsta=$2
config_get ifname $section ifname
#echo bsta = $bsta > /dev/console
[ "$bsta" == "$ifname" ] || return
#echo found ifname=$ifname > /dev/console
config_get bssid $section bssid
config_get band $section band
ret=$(mapagent_apply_wl_bsta $ifname $bssid)
[ "$ret" == "1" ] && {
diff=1
onbrd_bssid=$bssid
onbrd_band=$band
}
}
mapagent_apply_bssid_same_band() {
apply_config() {
local section=$1
local bsta=$2
config_get ifname $section ifname
[ "$bsta" == "$ifname" ] || return
uci -q set wireless.${section}.bssid=$bssid
}
config_get band $1 band
config_get onboarded $1 onboarded "0"
[ "$onbrd_band" != "$band" -o "$onboarded" = "1" ] && return
config_get ifname $1 ifname
config_load wireless
config_foreach apply_config wifi-iface $ifname $onbrd_bssid
uci commit wireless
}
config_foreach mapagent_process_bk bsta $ifname
#echo result diff = $diff > /dev/console
[ "$diff" == "1" ] && {
config_foreach mapagent_apply_bssid_same_band bsta
#ubus call uci commit '{"config":"wireless"}'
#echo reloading wireless > /dev/console
}
}
teardown_iface() {
config_load mapagent
local iface=$1
mapagent_teardown_wireless() {
write_wireless() {
local section=$1
local map_ifname=$2
config_get ifname $section ifname
[ "$ifname" != "$map_ifname" ] && return
uci -q set wireless.${section}.disabled="1"
uci -q set wireless.${section}.ssid="DISABLED-SSID"
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_key
}
config_load wireless
config_foreach write_wireless wifi-iface $1
}
mapagent_teardown_bss() {
local section=$1
local iface=$2
multi_ap=$(get_type_by_section $section)
[ "$multi_ap" == "0" ] && return
config_get ifname $section ifname
[ "$iface" != "$ifname" ] && return
config_get ifname $section ifname
uci -q set mapagent.${section}.enabled="0"
uci -q set mapagent.${section}.ssid="DISABLED-SSID"
uci -q set mapagent.${section}.key="DISABLED-KEY"
# subshell in hopes to maintain mapagent config loaded
(mapagent_teardown_wireless $ifname)
}
config_foreach mapagent_teardown_bss ap $iface
uci commit wireless
uci commit mapagent
}
bsta_to_wireless() {
config_load mapagent
mapagent_find_lowest_prio_onboarded() {
mapagent_process_bk() {
config_get priority $1 priority "2"
config_get onboarded $1 onboarded "0"
[ "$onboarded" = "0" ] && return
if [ -z "$sec" -o "$prio" = "-1" -o "$priority" -lt "$prio" ]; then
sec=$1
prio=$priority
fi
}
local sec=""
local prio="-1"
config_foreach mapagent_process_bk bsta
echo $sec
}
mapagent_enable_best() {
#echo 1=$1 best=$best > /dev/console
if [ "$1" = "$best" ]; then
uci -q set mapagent.$1.enabled='1'
else
uci -q set mapagent.$1.enabled='0'
fi
}
mapagent_bsta_to_wireless() {
mapagent_apply_wl_bsta() {
apply_config() {
local section=$1
local bsta=$2
local ssid="$3"
local key="$4"
local encryption=$5
local enabled=$6
local bssid=$7
local disabled="0"
config_get ifname $section ifname
[ -z "$enabled" -o "$enabled" = "0" ] && disabled="1"
[ "$bsta" == "$ifname" ] || return
uci -q set wireless.${section}.ssid="$ssid"
uci -q set wireless.${section}.key="$key"
uci -q set wireless.${section}.encryption=$encryption
uci -q set wireless.${section}.bssid="$bssid"
uci -q set wireless.${section}.default_disabled='0'
[ "$disabled" != "1" ] && return
wpa_cli -i "$bsta" disconnect > /dev/null 2>&1
wpa_cli -i "$bsta" disable_network 0 > /dev/null 2>&1
wpa_cli -i "$bsta" save_config > /dev/null 2>&1
echo 1
}
config_load wireless
config_foreach apply_config wifi-iface $@
uci commit wireless
}
mapagent_find_other_creds() {
#echo "trying to find other creds for $2" > /dev/console
config_get band $1 band
config_get onboarded $1 onboarded "0"
[ "$3" != "$band" -o "$onboarded" = "0" ] && return
config_get ssid $1 ssid
config_get key $1 key
config_get encryption $1 encryption
config_get enabled $1 enabled "0"
config_get bssid $1 bssid
(mapagent_apply_wl_bsta $2 "$ssid" "$key" $encryption $4 "$bssid")
}
config_get band $1 band
config_get ifname $1 ifname
config_get onboarded $1 onboarded "0"
config_get enabled $1 enabled "0"
if [ "$onboarded" = "0" ]; then
config_foreach mapagent_find_other_creds bsta $ifname $band $enabled
else
config_get ssid $1 ssid
config_get key $1 key
config_get encryption $1 encryption
config_get bssid $1 bssid
(mapagent_apply_wl_bsta $ifname "$ssid" "$key" $encryption $enabled "$bssid")
fi
}
# best=$(mapagent_find_lowest_prio_onboarded)
#
# [ -z "$best" ] && return
#
# band=$1
# sec=""
# prio=""
#
# config_foreach mapagent_enable_best bsta $best
# uci commit mapagent
config_load mapagent
diff=$(config_foreach mapagent_bsta_to_wireless bsta)
# [ "$diff" != "" ] && {
ubus call uci commit '{"config":"wireless"}'
# }
}
sync_mapcontroller_from_wireless() {
ubus -t 5 wait_for wifi
[ "$?" != "0" ] && return
[ ! -f "/etc/config/wireless" ] && return
status=$(ubus -S call wifi status)
device_to_band() {
local ifname=$1
json_load "$status"
json_select "radios"
json_get_keys keys
for key in $keys; do
json_select $key
json_get_var name name
if [ "$name" != "$ifname" ]; then
json_select ..
continue
fi
json_get_var band band
if [ "$band" == "5GHz" ]; then
echo "5"
elif [ "$band" == "2.4GHz" ]; then
echo "2"
fi
break
done
json_cleanup
}
wireless_process_iface() {
local section=$1
local type="ap"
local enabled="1"
config_get multi_ap $section multi_ap 0
[ "$multi_ap" != "1" ] && [ "$multi_ap" != "2" ] && return
config_get mode $section mode "ap"
[ "$mode" != "ap" ] && return
config_get device $section device
band=$(device_to_band $device)
[ "$band" == "" ] && return
config_get ssid $section ssid
config_get key $section key
config_get encryption $section encryption
config_get start_disabled $section start_disabled "0"
config_get network $section network
cntlr_section=$(uci add mapcontroller ${type})
uci -q set mapcontroller.${cntlr_section}.ssid="$ssid"
uci -q set mapcontroller.${cntlr_section}.key="$key"
uci -q set mapcontroller.${cntlr_section}.encryption="$encryption"
uci -q set mapcontroller.${cntlr_section}.band="$band"
uci -q set mapcontroller.${cntlr_section}.vid="1"
uci -q set mapcontroller.${cntlr_section}.network="$network"
[ "$multi_ap" == "1" ] && map_type="backhaul" || map_type="fronthaul"
uci -q set mapcontroller.${cntlr_section}.type="$map_type"
[ "$start_disabled" == "1" ] && enabled="0"
uci -q set mapcontroller.${cntlr_section}.enabled="$enabled"
}
mapcontroller_teardown() {
local section=$1
uci delete mapcontroller.$1
}
config_load mapcontroller
config_foreach mapcontroller_teardown ap
config_load wireless
config_foreach wireless_process_iface wifi-iface
uci commit mapcontroller
}
bsta_scan_on_enabled() {
local onboarded_bands=""
mapagent_onboarded_bands() {
config_get band $1 band
config_get onboarded $1 onboarded "0"
[ "$onboarded" = "0" ] && return
onboarded_bands="$onboarded_bands $band"
}
mapagent_enable_bk() {
config_get ifname $1 ifname
config_get band $1 band
config_get enabled $1 enabled
[ "$enabled" = "0" ] && return
for onboarded_band in $onboarded_bands
do
[ "$onboarded_band" != "$band" ] && continue
logger -t multiap "bsta_scan_on_enabled $ifname $band"
wpa_cli -i "$ifname" enable_network 0 > /dev/null 2>&1
wpa_cli -i "$ifname" reconnect > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
done
}
config_load mapagent
config_foreach mapagent_onboarded_bands bsta
config_foreach mapagent_enable_bk bsta
}
bsta_enable_all() {
mapagent_enable_bk() {
config_get ifname $1 ifname "2"
uci -q set mapagent.$1.enabled="1"
}
config_load mapagent
config_foreach mapagent_enable_bk bsta
uci commit mapagent
bsta_scan_on_enabled
}
bsta_disable_lower_priority() {
config_load mapagent
mapagent_get_priority() {
config_get ifname $1 ifname
[ "$ifname" != "$2" ] && return
config_get priority $1 priority "2"
echo "$priority"
}
mapagent_disable_lower_bk() {
mapagent_apply_wl_bsta() {
apply_config() {
local section="$1"
local bsta="$2"
local enabled="$3"
config_get ifname $section ifname
[ "$bsta" == "$ifname" ] || return
[ "$enabled" != "0" ] && return
wpa_cli -i "$ifname" disconnect > /dev/null 2>&1
wpa_cli -i "$ifname" disable_network 0 > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
local ifname="$1"
local enabled="$2"
[ "$enabled" != "0" ] && return
config_load wireless
config_foreach apply_config wifi-iface $ifname $enabled
}
local enabled="1"
config_get ifname $1 ifname
config_get priority $1 priority
[ "$ifname" != "$2" -a "$priority" -gt "$3" ] && enabled="0"
uci -q set mapagent.$1.enabled="$enabled"
(mapagent_apply_wl_bsta $ifname $enabled) > /dev/null
}
local bsta=$1
prio=$(config_foreach mapagent_get_priority bsta $bsta)
#echo bsta $bsta has prio $prio > /dev/console
config_foreach mapagent_disable_lower_bk bsta $bsta $prio
uci commit mapagent
# ubus call uci commit '{"config":"wireless"}'
}
bsta_use_link() {
config_load mapagent
mapagent_disable_bk() {
local bsta="$2"
config_get ifname $1 ifname
config_get enabled $1 enabled
[ "$bsta" = "$ifname" ] && return
wpa_cli -i "$ifname" disconnect > /dev/null 2>&1
wpa_cli -i "$ifname" disable_network 0 > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
local bsta=$1
config_foreach mapagent_disable_bk bsta $bsta
}
bsta_swap_to_link() {
bsta_disable_lower_priority $1
bsta_use_link $1
wpa_cli -i "$1" enable_network 0 > /dev/null
wpa_cli -i "$1" reconnect > /dev/null
wpa_cli -i "$1" save_config > /dev/null
}
set_uplink_backhaul_info() {
local ul_1905id=$1
local ul_mac=$2
json_load "$(cat $MAPFILE)"
json_add_string "backhaul_device_id" "$ul_1905id"
json_add_string "backhaul_macddr" "$ul_mac"
json_dump > "$MAPFILE"
json_cleanup
}
set_uplink() {
local type=$1
local ifname=$2
local hwaddr
hwaddr="$(ifconfig $ifname | grep -i hwaddr | awk '{print $5}' | awk '{print tolower($0)}')"
json_init
json_add_string "type" "$type"
json_add_string "ifname" "$ifname"
json_add_string "macaddr" "$hwaddr"
json_dump > "$MAPFILE"
json_cleanup
config_load mapagent
island_prevention="$(uci -q get mapagent.agent.island_prevention)"
if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then
ubus call map.agent toggle_fh '{"enable":true, "prevent_island":true, "ifname":"all"}'
fi
}
unset_uplink() {
local type=${1:-wifi}
config_load mapagent
island_prevention="$(uci -q get mapagent.agent.island_prevention)"
if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then
ubus call map.agent toggle_fh '{"enable":false, "prevent_island":true, "ifname":"all"}'
fi
rm -f "$MAPFILE" > /dev/null 2>&1
}
func=$1
shift
case "$func" in
wireless_teardown) wireless_teardown;;
setup_network) setup_network;;
setup_wireless) setup_wireless;;
write_credentials) write_credentials;;
sync_credentials) sync_credentials;;
bsta_steer) bsta_steer $@;;
set_network) set_network $@;;
write_bsta_config) write_bsta_config $@;;
teardown_iface) teardown_iface $@;;
bsta_to_wireless) bsta_to_wireless $@;;
sync_mapcontroller_from_wireless) sync_mapcontroller_from_wireless $@;;
ts) ts_sub $@;;
bsta_enable_all) bsta_enable_all $@;;
bsta_disable_lower_priority) bsta_disable_lower_priority $@;;
bsta_scan_on_enabled) bsta_scan_on_enabled $@;;
bsta_use_link) bsta_use_link $@;;
bsta_swap_to_link) bsta_swap_to_link $@;;
set_uplink) set_uplink $@;;
set_uplink_backhaul_info) set_uplink_backhaul_info $@;;
unset_uplink) unset_uplink $@;;
--help|help) usage;;
*) usage; exit 1;;
esac

View File

@@ -1,511 +0,0 @@
#!/bin/sh
. /lib/functions.sh
### Traffic Separation ###
dbg() {
logger -t traffic_separation $@
}
ts_sub() {
ts_usage() {
cat <<EOF
Usage: $0 [create|delete|populate|primary|reload]
Traffic Separation related functions.
create fh <iface> <vid> - create vlan device and rules for wifi fronthaul
create bh <iface> <vid> <profile> - create vlan device and rules for wifi backhaul
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
exit 1
}
_get_bridge() {
local bridge=$(ip link show $1 | grep -o "master [^\s]*" | cut -d ' ' -f 2)
echo $bridge
}
set_wireless_bridge() {
config_load wireless
_set_network() {
local sec=$1
local iface=$2
local bridge=$3
config_get ifname $sec ifname
[ "$iface" != "$ifname" ] && continue
config_get mode $sec mode
config_get multi_ap $sec multi_ap "0"
[ "$mode" = "sta" -a "$multi_ap" = "1" ] && continue
config_get network $sec network
local new_network=${bridge##br-}
if [ "$new_network" != "$network" ] ; then
uci -q set wireless.${sec}.network=${new_network}
uci commit wireless
fi
brctl addif $bridge $iface &> /dev/null
}
config_foreach _set_network wifi-iface ${1} ${2}
}
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
ip link set $iface up
ip link set $vlan_dev up
}
ts_create_eths() {
pvid=$1 # primary vid
bridge=$2 # name of ts subsystem bridge
shift 2
# TODO use ieee1905 bridge
for iface in $(uci get network.br_lan.ports) ; do
[ "$iface" = "lei_lan" ] && continue
_create_eth $iface $pvid $bridge $@
ubus call ieee1905 del_interface "{\"ifname\":\"$iface\"}"
done
}
ts_create_dhcp() {
local diff=""
_net_setup() {
local name=$1
local devname=$2
local vid=$3
[ -z "$(uci -q get network.${name})" ] && {
uci -q set network.${name}="interface"
uci -q set network.${name}.device="$devname"
uci -q set network.${name}.is_lan="1"
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"
}
[ "$diff" = "1" ] && uci -q commit network
}
_br_setup() {
local name=$1
local sinkname=$2
local vid=$3
[ -z "$(uci -q get network.${name}_dev)" ] && {
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"
}
[ -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() {
local name=$1
[ -n "$(uci -q get dhcp.${name})" ] && return
uci -q set dhcp.${name}=dhcp
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
shift
case "$type" in
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
Populating ETH rules requires IFACE and VID.
EOF
exit 1
}
iface=$1 # Multi-AP Logical Ethernet Interface
vid=$2 # secondary vid
path=$(ls -d /sys/class/net/${iface}/upper_*)
[ -z "$path" ] && exit 1
vlan_dev=${path##*upper_}
# add rules
#vlanctl --if $iface --rx --tags 1 --filter-vid $vid 0 --set-rxif $vlan_dev --rule-append # note: retain secondary vids
#vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --rule-append # note: already default
}
ts_primary() {
local func=$1
shift
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() {
local dhcp_reload=$1
# workaround for missing backhaul wifi.ap.* ubus obj's:
# iterate in config and setup bh
config_load wireless
_setup_bh_iface() {
local sec=$1
local iface=$2
local bridge=$3
config_get ifname $sec ifname
config_get mode $sec mode
config_get multi_ap $sec multi_ap "0"
[ "$mode" = "ap" -a "$multi_ap" = "1" ] && {
ts_create bh $ifname 1 2 br-map
}
}
config_foreach _setup_bh_iface wifi-iface
[ -n "dhcp_reload" ] && /etc/init.d/dnsmasq reload
# another workaround for netif? removed
# sink devices for br-map bridge
for sink in $(ubus list network.interface.sink*) ; do
local sink_vlan=${sink/network.interface./}_vlan
brctl addif br-map $sink_vlan &> /dev/null
done
}
local func=$1
shift
case "$func" in
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 $@;;
--help|help) ts_usage;;
*) ts_usage; exit 1;;
esac
}

View File

@@ -6,5 +6,21 @@ config CONTROLLER_SYNC_DYNAMIC_CNTLR_CONFIG
bool "Support Dynamic Controller configuration sync"
default y if MULTIAP_DYNAMIC_CNTLR_SYNC_CONFIG
config CONTROLLER_EASYMESH_VENDOR_EXT
bool "Enable extra features through Easymesh vendor extension"
default y
config CONTROLLER_EASYMESH_VENDOR_EXT_OUI_DEFAULT
string
default "\\\\x11\\\\x22\\\\x33"
config CONTROLLER_EASYMESH_VENDOR_EXT_OUI
string "Vendor OUI in '\\\\xAB\\\\xCD\\\\xEF' format"
default CONTROLLER_EASYMESH_VENDOR_EXT_OUI_DEFAULT
help
Extra features not covered by the base Easymesh specification can be
enabled through CONTROLLER_EASYMESH_VENDOR_EXT. Please provide the Vendor's OUI
through which such features would be exposed.
endmenu
endif

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
PKG_NAME:=map-controller
PKG_VERSION:=6.0.21
PKG_VERSION:=2.11.0.14
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=a388472887744d404825ee5602ab906bf1fc225c
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE_VERSION:=8a71dffdd66b2dcacf67353efcb09cb9127c1ea9
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
@@ -20,6 +17,9 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/map-controller
@@ -38,6 +38,7 @@ define Package/map-controller/config
endef
TARGET_CFLAGS += \
-Wno-error=deprecated-declarations \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-D_GNU_SOURCE
@@ -48,11 +49,18 @@ ifeq ($(CONFIG_CONTROLLER_SYNC_DYNAMIC_CNTLR_CONFIG),y)
TARGET_CFLAGS += -DCONTROLLER_SYNC_DYNAMIC_CNTLR_CONFIG
endif
ifeq ($(CONFIG_CONTROLLER_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=\\\"$(CONFIG_CONTROLLER_EASYMESH_VENDOR_EXT_OUI)\\\"
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT
endif
define Package/map-controller/install
$(INSTALL_DIR) $(1)/etc
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mapcontroller $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib/mapcontroller
$(CP) $(PKG_BUILD_DIR)/src/plugins/steer/rcpi/rcpi.so $(1)/usr/lib/mapcontroller/rcpi.so
endef
ifeq ($(LOCAL_DEV),1)

View File

@@ -2,14 +2,22 @@ config controller 'controller'
option enabled '1'
option registrar '2 5'
option debug '0'
option bcn_metrics_max_num '10'
option initial_channel_scan '0'
option primary_vid '0'
option primary_pcp '0'
option allow_bgdfs '0'
option channel_plan '0'
config sta_steering
option steer_module 'rcpi'
option enabled '1'
option enable_sta_steer '0'
option enable_bsta_steer '0'
option use_bcn_metrics '0'
option use_usta_metrics '0'
option primary_vid '1'
option primary_pcp '0'
option allow_bgdfs '0'
option channel_plan '0'
option bandsteer '0'
option diffsnr '8'
config ap
option band '2'
@@ -60,8 +68,8 @@ config ap
# option report_sta_assocfails_rate '0'
# option report_metric_periodic '0'
# option report_scan '0'
# option steer_exclude '0'
# option steer_exclude_btm '0'
# list steer_exclude 'e0:d4:e8:79:c4:ee'
# list steer_exclude_btm 'e0:d4:e8:79:c4:11'
# option steer_disallow '0'
# option coordinated_cac '0'
# option traffic_separation '0'
@@ -107,8 +115,8 @@ config ap
# option report_sta_assocfails_rate '0'
# option report_metric_periodic '0'
# option report_scan '0'
# option steer_exclude '0'
# option steer_exclude_btm '0'
# list steer_exclude 'e0:d4:e8:79:c4:ee'
# list steer_exclude_btm 'e0:d4:e8:79:c4:11'
# option steer_disallow '0'
# option coordinated_cac '0'
# option traffic_separation '0'

View File

@@ -19,16 +19,36 @@ validate_controller_section() {
'enabled:bool:true' \
'registrar:string' \
'debug:range(0,16)' \
'bcn_metrics_max_num:range(1,256)' \
'initial_channel_scan:bool:true' \
'resend_num:uinteger:0' \
'allow_bgdfs:range(0,2629744)' \
'channel_plan:range(0,2629744)' \
'enable_ts:bool:false'
[ "$?" -ne 0 ] && {
logger -s -t "mapcontroller" "Validation of controller section failed"
IS_CFG_VALID=0
return 1
}
return 0
}
validate_sta_steering_section() {
local section="$1"
uci_validate_section mapcontroller $section "${1}" \
'steer_module:string' \
'enabled:bool:true' \
'enable_sta_steer:bool:false' \
'enable_bsta_steer:bool:false' \
'use_bcn_metrics:bool:false' \
'use_usta_metrics:bool:false' \
'allow_bgdfs:range(0,2629744)' \
'channel_plan:range(0,2629744)'
'bandsteer:bool:false' \
'diffsnr:range(0,100)'
[ "$?" -ne 0 ] && {
logger -s -t "mapcontroller" "Validation of controller section failed"
logger -s -t "mapcontroller" "Validation of sta_steering section failed"
IS_CFG_VALID=0
return 1
}
@@ -39,7 +59,7 @@ validate_ap_section() {
local section="$1"
uci_validate_section mapcontroller $section "${1}" \
'band:or("2", "5")' \
'band:or("2", "5", "6")' \
'ssid:string' \
'encryption:or("sae", "sae+aes", "psk2",
"psk2+aes", "sae-mixed", "sae-mixed+aes")' \
@@ -92,7 +112,7 @@ validate_radio_section() {
uci_validate_section mapcontroller $section "${1}" \
'agent_id:macaddr' \
'macaddr:macaddr' \
'band:or("2", "5")' \
'band:or("2", "5", "6")' \
'steer_policy:range(0,2)' \
'util_threshold:range(0,255)' \
'rcpi_threshold:range(0,255)' \
@@ -115,6 +135,7 @@ validate_controller_config() {
IS_CFG_VALID=1
validate_controller_section &&
config_foreach validate_sta_steering_section sta_steering &&
config_foreach validate_ap_section ap &&
config_foreach validate_node_section node &&
config_foreach validate_radio_section radio

22
map-topology/Config.in Normal file
View File

@@ -0,0 +1,22 @@
if (PACKAGE_map-topology)
menu "Configurations"
config TOPOLOGYD_EASYMESH_VENDOR_EXT
bool "Enable extra features through Easymesh vendor extension"
default y
config TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI_DEFAULT
string
default "\\\\x11\\\\x22\\\\x33"
config TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI
string "Vendor OUI in '\\\\xAB\\\\xCD\\\\xEF' format"
default TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI_DEFAULT
help
Extra features not covered by the base Easymesh specification can be
enabled through TOPOLOGYD_EASYMESH_VENDOR_EXT. Please provide the Vendor's OUI
through which such features would be exposed.
endmenu
endif

View File

@@ -1,38 +1,45 @@
#
# Copyright (C) 2020 iopsys
# Copyright (C) 2020-22 IOPSYS Software Solutions AB
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology
PKG_VERSION:=4.0.1
PKG_VERSION:=2.5.1.8
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=f0c36d13b19c100639a8f657a6a027bbfd74b802
PKG_SOURCE_VERSION:=ee72703a5c89983c881d8faedcdc749b54278790
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DEPENDS:=ieee1905
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/map-topology
CATEGORY:=Utilities
DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \
+libavahi-nodbus-support
+libavahi-nodbus-support +libnetfilter-conntrack +libnfnetlink +libmnl
TITLE:=Utility to build topology of a multi-AP network
endef
define Package/map-topology/config
source "$(SOURCE)/Config.in"
endef
TARGET_CFLAGS += \
-Wno-error=deprecated-declarations \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-I$(STAGING_DIR)/usr/include/libnetfilter_conntrack \
-D_GNU_SOURCE
define Package/map-topology/description
@@ -41,6 +48,11 @@ endef
MAKE_PATH:=src
ifeq ($(CONFIG_TOPOLOGYD_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=\\\"$(CONFIG_TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI)\\\"
endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/map-topology/* $(PKG_BUILD_DIR)/

View File

@@ -2,3 +2,4 @@
config global 'global'
option ageing_timer '1440'
option reboot_persistent '0'
list ifname 'br-lan'

View File

@@ -0,0 +1,45 @@
#
# Copyright (c) 2022 Genexis B.V.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Erik Karlsson - initial implementation
#
include $(TOPDIR)/rules.mk
PKG_NAME:=mosquitto-auth-shadow
PKG_VERSION:=1.0.0
PKG_MAINTAINER:=Erik Karlsson <erik.karlsson@genexis.eu>
PKG_LICENSE:=EPL-2.0
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/mosquitto-auth-shadow
SECTION:=net
CATEGORY:=Network
TITLE:=mosquitto - /etc/shadow authentication plugin
DEPENDS:=mosquitto
USERID:=mosquitto=200:mosquitto=200 mosquitto=200:shadow=11
endef
define Package/mosquitto-auth-shadow/description
Plugin for the mosquitto MQTT message broker that authenticates
users using /etc/shadow
endef
define Package/mosquitto-auth-shadow/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mosquitto_auth_shadow.so $(1)/usr/lib/
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,mosquitto-auth-shadow))

View File

@@ -0,0 +1 @@
chown root:shadow /etc/shadow && chmod 0640 /etc/shadow

View File

@@ -0,0 +1,25 @@
#
# Copyright (c) 2022 Genexis B.V.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Erik Karlsson - initial implementation
#
TARGETS = mosquitto_auth_shadow.so
all: $(TARGETS)
%.pic.o: %.c
$(CC) $(CFLAGS) -Wall -Werror -fPIC -c -o $@ $<
mosquitto_auth_shadow.so: mosquitto_auth_shadow.pic.o
$(CC) $(LDFLAGS) -shared -o $@ $^
clean:
rm -f *.o $(TARGETS)

View File

@@ -0,0 +1,80 @@
/*
* Copyright (c) 2022 Genexis B.V.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Erik Karlsson - initial implementation
*/
#include <string.h>
#include <shadow.h>
#include <crypt.h>
#include <mosquitto.h>
#include <mosquitto_broker.h>
#include <mosquitto_plugin.h>
static int basic_auth_callback(int event, void *event_data, void *userdata)
{
struct mosquitto_evt_basic_auth *ed = event_data;
struct spwd spbuf, *sp = NULL;
char buf[256];
struct crypt_data data;
char *hash;
/* Let other plugins or broker decide about anonymous login */
if (ed->username == NULL)
return MOSQ_ERR_PLUGIN_DEFER;
getspnam_r(ed->username, &spbuf, buf, sizeof(buf), &sp);
if (sp == NULL || sp->sp_pwdp == NULL)
return MOSQ_ERR_AUTH;
/* Empty string as hash means password is not required */
if (sp->sp_pwdp[0] == 0)
return MOSQ_ERR_SUCCESS;
if (ed->password == NULL)
return MOSQ_ERR_AUTH;
memset(&data, 0, sizeof(data));
hash = crypt_r(ed->password, sp->sp_pwdp, &data);
if (hash == NULL)
return MOSQ_ERR_AUTH;
if (strcmp(hash, sp->sp_pwdp) == 0)
return MOSQ_ERR_SUCCESS;
return MOSQ_ERR_AUTH;
}
int mosquitto_plugin_version(int supported_version_count,
const int *supported_versions)
{
return 5;
}
int mosquitto_plugin_init(mosquitto_plugin_id_t *identifier,
void **user_data,
struct mosquitto_opt *opts, int opt_count)
{
*user_data = identifier;
return mosquitto_callback_register(identifier, MOSQ_EVT_BASIC_AUTH,
basic_auth_callback, NULL, NULL);
}
int mosquitto_plugin_cleanup(void *user_data,
struct mosquitto_opt *opts, int opt_count)
{
mosquitto_plugin_id_t *identifier = user_data;
return mosquitto_callback_unregister(identifier, MOSQ_EVT_BASIC_AUTH,
basic_auth_callback, NULL);
}

View File

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

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=obuspa
PKG_VERSION:=5.0.0.11
PKG_VERSION:=6.0.0.8
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b8bc6a70f07b40c8512e8894461602f47981df97
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
PKG_SOURCE_VERSION:=b5afdfc4b7ba93698a6ac981fc0f300b5362b7bf
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -43,11 +43,14 @@ define Package/obuspa/config
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE \
-Wall \
-Werror
ifneq ($(CONFIG_OBUSPA_CONTROLLER_MTP_VERIFY),)
TARGET_CFLAGS += -DOBUSPA_CONTROLLER_MTP_VERIFY
endif
ifneq ($(CONFIG_OBUSPA_DB_PATH),)
CONFIGURE_ARGS += \
--localstatedir="$(CONFIG_OBUSPA_DB_PATH)"
@@ -88,6 +91,7 @@ endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/obuspa/* $(PKG_BUILD_DIR)/
$(Build/Patch)
endef
endif
@@ -97,12 +101,15 @@ define Package/obuspa/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/obuspa
$(INSTALL_DIR) $(1)/etc/bbfdm/json
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) $(PKG_BUILD_DIR)/obuspa $(1)/usr/sbin/
$(INSTALL_BIN) ./files/etc/init.d/obuspa $(1)/etc/init.d/
$(INSTALL_DATA) ./files/etc/config/obuspa $(1)/etc/config/
$(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/bbfdm/json/USPAgent.json $(1)/etc/bbfdm/json/USPAgent.json
$(INSTALL_DATA) ./files/etc/bbfdm/json/TransferComplete.json $(1)/etc/bbfdm/json/TransferComplete.json
$(INSTALL_BIN) ./files/etc/uci-defaults/01-fix-upgrade-uci $(1)/etc/uci-defaults/
endef
$(eval $(call BuildPackage,obuspa))

View File

@@ -1,30 +1,17 @@
config obuspa 'global'
option enabled '1'
option interface 'loopback'
#option ifname 'lo'
option debug '1'
option log_level '1'
option prototrace '0'
#option db_file '/etc/obuspa/usp.db'
option prototrace '1'
option db_file '/etc/obuspa/usp.db'
#option role_file '/etc/obuspa/roles.json'
option dm_caching_exclude '/etc/obuspa/dmcaching_exclude.json'
#option trust_cert '/etc/obuspa/rootCA.pem'
#option client_cert '/etc/obuspa/client.pem'
#option log_dest '/var/log/obuspa'
config localagent 'localagent'
option Enable '1'
# Adds Device.LocalAgent.Controller.
config controller 'localcontroller'
option EndpointID 'proto::interop-usp-controller'
option Protocol 'MQTT'
option Topic '/usp/controller'
option mqtt 'localmqtt'
option assigned_role_name 'full_access'
# Adds Device.LocalAgent.MTP.
config mtp
config mtp 'agent_mtp'
option Protocol 'MQTT'
option ResponseTopicConfigured '/usp/endpoint'
option mqtt 'localmqtt'
@@ -35,13 +22,30 @@ config mqtt 'localmqtt'
option BrokerPort '1883'
option TransportProtocol 'TCP/IP'
# Adds Device.LocalAgent.Controller.
config controller 'localcontroller'
option EndpointID 'proto::interop-usp-controller'
option Protocol 'MQTT'
option Topic '/usp/controller'
option mqtt 'localmqtt'
option assigned_role_name 'full_access'
# Add Device.LocalAgent.Subscription.
config subscription
option ID 'default-boot-event-ACS'
option NotifType 'Event'
option ReferenceList 'Device.Boot!'
option Persistent 'true'
option controller 'localcontroller'
#config subscription 'sub_event'
# option ID 'uci-sub-events'
# option NotifType 'Event'
# list ReferenceList 'Device.Boot!'
# list ReferenceList 'Device.LocalAgent.TransferComplete!'
# option Persistent 'true'
# option controller 'localcontroller'
#config subscription 'sub_op_comp'
# option ID 'uci-sub-op_complete'
# option NotifType 'OperationComplete'
# list ReferenceList 'Device.DeviceInfo.FirmwareImage.*.Download()'
# list ReferenceList 'Device.DeviceInfo.FirmwareImage.*.Activate()'
# option Persistent 'true'
# option controller 'localcontroller'
#config challenge 'admin'
# option Description 'Request to get Administrative access'

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -0,0 +1,18 @@
#!/bin/sh
. /lib/functions.sh
fix_stomp_section() {
local encryption
config_get_bool encryption $1 encryption ""
if [ -n "${encryption}" ]; then
uci_set obuspa $1 encryption ""
uci_set obuspa $1 EnableEncryption "$encryption"
fi
}
# fix the stomp encryption parameter
config_load obuspa
config_foreach fix_stomp_section stomp
uci_commit

View File

@@ -0,0 +1,140 @@
diff --git a/src/core/device.h b/src/core/device.h
index adf8fa6..072f953 100644
--- a/src/core/device.h
+++ b/src/core/device.h
@@ -111,6 +111,7 @@ typedef struct
// Following member variables only set if USP message was received over MQTT
int mqtt_instance;
char *mqtt_topic; // only set if reply_to was specified in the received MQTT packet
+ char *mqtt_topic_recv;
// Following member variables only set if USP message was received over CoAP
@@ -252,7 +253,7 @@ void DEVICE_MTP_NotifyMqttConnDeleted(int mqtt_instance);
int DEVICE_MTP_ValidateMqttReference(dm_req_t *req, char *value);
void DEVICE_CONTROLLER_SetRolesFromMqtt(int mqtt_instance, ctrust_role_t role);
char *DEVICE_CONTROLLER_GetControllerTopic(int mqtt_instance);
-
+int validate_controller_topic_by_endpointid(char *endpointid, mtp_protocol_t proto, char *recv_topic);
//------------------------------------------------------------------------------
// Tables used to convert to/from an enumeration to/from a string
extern const enum_entry_t mtp_protocols[kMtpProtocol_Max];
diff --git a/src/core/device_controller.c b/src/core/device_controller.c
index 62c803f..103388d 100755
--- a/src/core/device_controller.c
+++ b/src/core/device_controller.c
@@ -239,6 +239,41 @@ int Async_E2ESessionReset(dm_req_t *req, kv_vector_t *input_args, int request);
extern const enum_entry_t e2e_session_modes[kE2EMode_Max];
#endif
+
+int validate_controller_topic_by_endpointid(char *endpointid, mtp_protocol_t proto, char *recv_topic)
+{
+ controller_t *cont = FindEnabledControllerByEndpointId(endpointid);
+ if (cont == NULL)
+ {
+ USP_LOG_Error("not able to find the controller from endpointid [%s]", endpointid);
+ return USP_ERR_PERMISSION_DENIED;
+ }
+#ifdef ENABLE_MQTT
+ if (proto == kMtpProtocol_MQTT)
+ {
+ controller_mtp_t *mtp = FindFirstEnabledMtp(cont, proto);
+
+ if (mtp == NULL) {
+ USP_LOG_Error("Not able to find mtp[%d] for endpointid [%s]", proto, endpointid);
+ return USP_ERR_REQUEST_DENIED;
+ }
+
+ if (mtp->protocol != proto) {
+ USP_LOG_Error("No matching mtp[%d] for endpointid [%s]", proto, endpointid);
+ return USP_ERR_REQUEST_DENIED;
+ }
+
+ char *response_topic = DEVICE_MTP_GetAgentMqttResponseTopic(mtp->mqtt_connection_instance);
+ if (response_topic && strcmp(response_topic, recv_topic) != 0 ) {
+ USP_LOG_Error("Controller response topic[%s] and recv topic[%s] mismatch, probably a spoof message", response_topic, recv_topic);
+ return USP_ERR_PERMISSION_DENIED;
+ }
+ }
+#endif
+
+ return USP_ERR_OK;
+}
+
/*********************************************************************//**
**
** DEVICE_CONTROLLER_Init
diff --git a/src/core/dm_exec.c b/src/core/dm_exec.c
index c0b95d8..6eb51e2 100755
--- a/src/core/dm_exec.c
+++ b/src/core/dm_exec.c
@@ -624,6 +624,7 @@ void DM_EXEC_PostUspRecord(unsigned char *pbuf, int pbuf_len, ctrust_role_t role
pur->mtp_reply_to.coap_encryption = mrt->coap_encryption;
pur->mtp_reply_to.coap_reset_session_hint = mrt->coap_reset_session_hint;
pur->mtp_reply_to.mqtt_topic = USP_STRDUP(mrt->mqtt_topic);
+ pur->mtp_reply_to.mqtt_topic_recv = USP_STRDUP(mrt->mqtt_topic_recv);
pur->mtp_reply_to.mqtt_instance = mrt->mqtt_instance;
pur->mtp_reply_to.wsclient_cont_instance = mrt->wsclient_cont_instance;
pur->mtp_reply_to.wsclient_mtp_instance = mrt->wsclient_mtp_instance;
@@ -1144,6 +1145,7 @@ void ProcessMessageQueueSocketActivity(socket_set_t *set)
USP_SAFE_FREE(mrt->coap_resource);
USP_SAFE_FREE(mrt->mqtt_topic);
USP_SAFE_FREE(mrt->cont_endpoint_id);
+ USP_SAFE_FREE(mrt->mqtt_topic_recv);
break;
#ifndef DISABLE_STOMP
diff --git a/src/core/mqtt.c b/src/core/mqtt.c
index 7dba9f4..3ee9c97 100644
--- a/src/core/mqtt.c
+++ b/src/core/mqtt.c
@@ -3141,6 +3141,7 @@ void ReceiveMqttMessage(mqtt_client_t *client, const struct mosquitto_message *m
mrt.mqtt_topic = response_topic;
}
+ mrt.mqtt_topic_recv = message->topic;
// Message may not be valid USP
DM_EXEC_PostUspRecord(message->payload, message->payloadlen, client->role, &mrt);
}
diff --git a/src/core/msg_handler.c b/src/core/msg_handler.c
index ce67626..4af9ade 100644
--- a/src/core/msg_handler.c
+++ b/src/core/msg_handler.c
@@ -118,7 +118,7 @@ static enum_entry_t mtp_content_types[] = {
//------------------------------------------------------------------------------
// Forward declarations. Note these are not static, because we need them in the symbol table for USP_LOG_Callstack() to show them
int HandleUspMessage(Usp__Msg *usp, char *controller_endpoint, mtp_reply_to_t *mrt);
-int ValidateUspRecord(UspRecord__Record *rec);
+int ValidateUspRecord(UspRecord__Record *rec, mtp_reply_to_t *mrt);
char *MtpSendItemToString(mtp_send_item_t *msi);
void CacheControllerRoleForCurMsg(char *endpoint_id, ctrust_role_t role, mtp_protocol_t protocol);
int QueueUspNoSessionRecord(usp_send_item_t *usi, char *endpoint_id, char *usp_msg_id, mtp_reply_to_t *mrt, time_t expiry_time);
@@ -172,7 +172,7 @@ int MSG_HANDLER_HandleBinaryRecord(unsigned char *pbuf, int pbuf_len, ctrust_rol
#endif
// Exit if USP record failed validation
- err = ValidateUspRecord(rec);
+ err = ValidateUspRecord(rec, mrt);
if (err != USP_ERR_OK)
{
goto exit;
@@ -725,7 +725,7 @@ exit:
** \return USP_ERR_OK if record is valid
**
**************************************************************************/
-int ValidateUspRecord(UspRecord__Record *rec)
+int ValidateUspRecord(UspRecord__Record *rec, mtp_reply_to_t *mrt)
{
char *endpoint_id;
@@ -806,6 +806,9 @@ int ValidateUspRecord(UspRecord__Record *rec)
return USP_ERR_REQUEST_DENIED;
}
+#if OBUSPA_CONTROLLER_MTP_VERIFY
+ return validate_controller_topic_by_endpointid(rec->from_id, mrt->protocol, mrt->mqtt_topic_recv);
+#endif
// If the code gets here, then the USP record passed validation, and the encapsulated USP message may be processed
return USP_ERR_OK;
}

View File

@@ -0,0 +1,49 @@
diff --git a/src/core/cli_server.c b/src/core/cli_server.c
index 701cbd9..103361e 100644
--- a/src/core/cli_server.c
+++ b/src/core/cli_server.c
@@ -733,10 +733,6 @@ int ExecuteCli_Get(char *arg1, char *arg2, char *usage)
USP_ASSERT(gge->value != NULL);
SendCliResponse("%s => %s\n", gge->path, gge->value);
}
- else
- {
- SendCliResponse("ERROR: %d retrieving %s (%s)\n", gge->err_code, gge->path, gge->err_msg);
- }
}
GROUP_GET_VECTOR_Destroy(&ggv);
diff --git a/src/core/handle_get.c b/src/core/handle_get.c
index e1055e0..16b9ceb 100755
--- a/src/core/handle_get.c
+++ b/src/core/handle_get.c
@@ -260,26 +260,16 @@ void FormPathExprResponse(int get_expr_index, char *path_expr, get_expr_info_t *
return;
}
- // If there was an error in getting any of the parameters associated with the path expression,
- // then just add the first error, without any of the parameter values, for this path expression result
- for (i=0; i < gi->num_entries; i++)
- {
- gge = &ggv->vector[gi->index + i];
- if (gge->err_code != USP_ERR_OK)
- {
- (void)AddGetResp_ReqPathRes(resp, path_expr, gge->err_code, gge->err_msg);
- return;
- }
- }
-
// If the code gets here, then the value of all parameters were retrieved successfully, so add their values to the result_params
req_path_result = AddGetResp_ReqPathRes(resp, path_expr, USP_ERR_OK, "");
for (i=0; i < gi->num_entries; i++)
{
gge = &ggv->vector[gi->index + i];
- // Simple format contains a resolved_path_result for every object (and sub object)
- AddResolvedPathResult(req_path_result, gge->path, gge->value);
+ if (gge->err_code == USP_ERR_OK) {
+ // Simple format contains a resolved_path_result for every object (and sub object)
+ AddResolvedPathResult(req_path_result, gge->path, gge->value);
+ }
}
}

View File

@@ -0,0 +1,43 @@
--- a/src/core/cli_server.c
+++ b/src/core/cli_server.c
@@ -787,6 +787,7 @@ int ExecuteCli_Set(char *arg1, char *arg
goto exit;
}
+ SetControllerRoleForInternal();
// Iterate over all objects to set
for (i=0; i < objects.num_entries; i++)
{
--- a/src/core/data_model.h
+++ b/src/core/data_model.h
@@ -324,6 +324,7 @@ void DATA_MODEL_DumpSchema(void);
void DATA_MODEL_DumpInstances(void);
char DATA_MODEL_GetJSONParameterType(char *path);
int DATA_MODEL_SetParameterInDatabase(char *path, char *value);
+void SetControllerRoleForInternal();
int DM_PRIV_InitSetRequest(dm_req_t *req, dm_node_t *node, char *path, dm_instances_t *inst, char *new_value);
void DM_PRIV_RequestInit(dm_req_t *req, dm_node_t *node, char *path, dm_instances_t *inst);
--- a/src/core/msg_handler.c
+++ b/src/core/msg_handler.c
@@ -839,6 +839,20 @@ char *MtpSendItemToString(mtp_send_item_
/*********************************************************************//**
**
+** SetControllerRoleForInternal
+**
+** Sets the role for internal user
+**
+**
+**************************************************************************/
+void SetControllerRoleForInternal()
+{
+ cur_msg_combined_role.inherited = kCTrustRole_Untrusted;
+ cur_msg_combined_role.assigned = kCTrustRole_FullAccess;
+}
+
+/*********************************************************************//**
+**
** CacheControllerRoleForCurMsg
**
** Retrieves the role to use for the specified controller, and caches it locally, so that

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=owsd
PKG_VERSION:=1.1.4
PKG_VERSION:=1.1.5
PKG_RELEASE:=1
PKG_SOURCE_PROTO=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/owsd.git
PKG_SOURCE_VERSION:=e37c6f9d708c454c802eede814cc51fb89c919e9
PKG_SOURCE_VERSION:=d866ee2a96f5b75b3f45b0e1d655431184e8032d
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=periodicstats
PKG_VERSION:=1.1.2
PKG_VERSION:=1.2.1
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=2779815d2b87e5966e27cfafe88070d0a8970a25
PKG_SOURCE_VERSION:=6c68428405bc88a9990e855f911aecc86f07f4a8
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/periodicstats.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -20,15 +20,13 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
include $(INCLUDE_DIR)/package.mk
define Package/periodicstats
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Periodic Statistics Daemon
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libbbf_api
endef
define Package/periodicstats/description

View File

@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ponmngr
PKG_VERSION:=1.0.0
PKG_VERSION:=1.0.1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -17,11 +17,12 @@ include $(INCLUDE_DIR)/package.mk
define Package/ponmngr
CATEGORY:=Utilities
TITLE:=ponmngr packets manager daemon
TITLE:=PON Manager
DEPENDS:=@(TARGET_brcmbca||TARGET_airoha)
endef
define Package/ponmngr/description
Configures pon
Configures PON
endef
#define Build/Prepare
@@ -32,7 +33,12 @@ define Build/Compile
endef
define Package/ponmngr/install
$(CP) ./files/* $(1)/
$(CP) ./files/common/* $(1)/
ifneq ($(CONFIG_TARGET_brcmbca),)
$(CP) ./files/broadcom/* $(1)/
else ifneq ($(CONFIG_TARGET_airoha),)
$(CP) ./files/airoha/* $(1)/
endif
endef
$(eval $(call BuildPackage,ponmngr))

View File

@@ -0,0 +1,28 @@
#!/bin/sh
. /lib/functions.sh
set_serial_number() {
vendor_id=$1
vssn=$2
/userfs/bin/omcicfgCmd set sn ${vendor_id}${vssn}
}
init_xpon() {
# don't start pon daemons if xpon module is not loaded
[ -d /sys/module/xpon ] || return
procd_open_instance ponmgr_cfg
procd_set_param command /userfs/bin/ponmgr_cfg
procd_close_instance
procd_open_instance omci
procd_set_param command /userfs/bin/omci
procd_close_instance
}
deinit_xpon() {
killall -9 omci 2>/dev/null
killall -9 ponmgr_cfg 2>/dev/null
}

View File

@@ -0,0 +1,30 @@
#!/bin/sh
. /lib/functions.sh
set_serial_number() {
vendor_id=$1
vssn=$2
vendor_id="$(echo $vendor_id | hexdump -e '4/1 "%02X" "\n"')"
vendor_id=${vendor_id:0:8}
bs /b/c gpon onu_sn={vendor_id=$vendor_id,vendor_specific=$vssn}
}
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_set_param respawn
procd_close_instance
}
deinit_xpon() {
# stopping omcid does not bring down the pon link, which should happen
# if ANI is disabled or stopped (go to O1)
gponctl stop
}

View File

@@ -0,0 +1,40 @@
#!/bin/sh /etc/rc.common
START=19
STOP=91
USE_PROCD=1
. /lib/functions.sh
include /lib/xpon
configure_serial_number() {
# serial number generation is taken care in the uci defaults, so if
# serial number is not found here its a misconfig
serial_number="$(uci -q get xpon.ani.serial_number)"
if [ ${#serial_number} -eq 12 ]; then
vendor_id="${serial_number:0:4}"
vssn="${serial_number:4:8}"
else
logger -s -t "xpon" "Serial number not found in uci, ont will probably not be registered at the olt"
logger -s -t "xpon" "Please configure a valid serial number"
return
fi
set_serial_number $vendor_id $vssn
}
start_service() {
if [ "$(uci -q get xpon.ani.enable)" == "1" ]; then
configure_serial_number
init_xpon
fi
}
stop_service() {
deinit_xpon
}
service_triggers() {
procd_add_reload_trigger "xpon"
}

View File

@@ -0,0 +1,34 @@
#!/bin/sh
configure_serial_number() {
# check if serial number is present in the production data
production_sn="$(fw_printenv -n gponsn)"
if [ ${#production_sn} -eq 12 ]; then
uci set xpon.ani.serial_number=$production_sn
else
macaddr="$(fw_printenv -n ethaddr | tr -d ':' | tr 'a-z' 'A-Z')"
vendor_id="IOPS"
vssn="${macaddr:4:8}"
uci set xpon.ani.serial_number=$vendor_id$vssn
fi
}
if [ -s "/etc/config/xpon" ]; then
if uci -q get xpon.ani >/dev/null; then
# generate serial number in case its not present and return
serial_number="$(uci -q get xpon.ani.serial_number)"
if [ ${#serial_number} -ne 12 ]; then
configure_serial_number
fi
exit
else
rm -f /etc/config/xpon
fi
fi
touch /etc/config/xpon
uci set xpon.ani=ani
uci set xpon.ani.enable="1"
configure_serial_number

View File

@@ -1,25 +0,0 @@
#!/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,17 +0,0 @@
#!/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

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