Compare commits

..

154 Commits

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

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-06-29 16:58:51 +00:00
vdutta
dee5ea0da3 icwmp: 8.4.22 2022-06-29 21:01:31 +05:30
Jakob Olsson
0c6dad2c58 ieee1905: 4.9.6 2022-06-29 16:43:30 +02:00
Amin Ben Ramdhane
f9cd9c627e bbf: 6.8.5 2022-06-28 21:41:44 +05:30
Grzegorz Sluja
31f03a7b47 dectmngr-3.5.4: Fix for setting extension_id for handset 2022-06-28 17:27:23 +02:00
Jakob Olsson
50d2408ddb map-topology: 2.5.0.6 2022-06-28 14:15:00 +02:00
Amin Ben Ramdhane
79f5bbd0cf bbf: 6.8.4 2022-06-28 15:43:42 +05:30
Amin Ben Ramdhane
58fdac62b0 icwmp: 8.4.21 2022-06-28 15:43:20 +05:30
Amin Ben Ramdhane
32192f5423 icwmp: regenerate ssl link in boot() 2022-06-28 09:05:39 +05:30
Amin Ben Ramdhane
35bb02b726 bbf: 6.8.2 2022-06-27 20:31:30 +05:30
vdutta
77536709f0 bbf: 6.8.1 2022-06-24 13:19:15 +05:30
vdutta
e67a5e505f icwmp: 8.4.20 2022-06-24 13:18:45 +05:30
vdutta
cd7826de33 obuspa: 5.0.0.16 2022-06-24 13:18:22 +05:30
vdutta
c09a4a0ca5 uspd: Move TransferComplete event to obuspa 2022-06-24 13:17:30 +05:30
Grzegorz Sluja
49e7f2e349 dectmngr: Fix for setting extension_id for handset 2022-06-24 09:45:24 +02:00
vdutta
44e614d8e2 inbd: Fix static code analysis warnings 2022-06-24 00:09:28 +02:00
Jakob Olsson
dba358a542 map-agent: traffic_separation: reload netifd by ubus call uci commit 2022-06-23 12:02:40 +02:00
vdutta
6688812576 obuspa: 5.0.0.15 2022-06-23 15:26:32 +05:30
vdutta
9b14d0574f icwmp: 8.4.19 2022-06-23 15:19:09 +05:30
Amin Ben Ramdhane
82bf3bbba4 bbf: 6.8.0 2022-06-23 15:18:06 +05:30
Amin Ben Ramdhane
311273865d bbf: 6.7.9 2022-06-23 15:17:44 +05:30
vdutta
e64714e538 obuspa: Added option to verify the mqtt received topic 2022-06-23 15:15:07 +05:30
Jakob Olsson
f29ade1e60 map-topology: 2.5.0.5 2022-06-22 13:48:00 +02:00
vdutta
ddf6d7ba32 icwmp: 8.4.18 2022-06-22 11:10:29 +05:30
suvendhu
803be5fcad icwmp: 8.4.17 2022-06-22 11:10:00 +05:30
Amin Ben Ramdhane
08abbdfe5b periodicstats: 1.2.0 2022-06-22 11:09:32 +05:30
Grzegorz Sluja
3ad949442c Update package endptmngr
Return to the first call without playing any tones on DECT handset when the second call ends
2022-06-21 15:20:44 +02:00
Jakob Olsson
6b37f2fccb map-controller: 2.8.0.1 2022-06-17 13:51:08 +02:00
Jakob Olsson
8d3aa2aa60 map-controller: 2.8.0.0 2022-06-17 11:07:01 +02:00
Jakob Olsson
9f5d5eb347 map-agent: 2.9.0.0 2022-06-17 11:07:01 +02:00
Stanislaw Gruszka
2d9a47073b map-agent: ts: reload firewall 2022-06-16 17:55:41 +02:00
Stanislaw Gruszka
dc0ab5dbd3 map-agent: ts: configure firewall 2022-06-16 17:55:41 +02:00
Stanislaw Gruszka
f513b5ba46 map-agent: traffic separation script rework 2022-06-16 17:55:41 +02:00
vdutta
aa5e98a35c obuspa: 5.0.0.13 2022-06-16 19:27:56 +05:30
Amin Ben Ramdhane
051c6f2cc1 bbf: 6.7.8 2022-06-16 19:27:30 +05:30
vdutta
aa2a78e211 obuspa: 5.0.0.12 2022-06-15 20:30:34 +05:30
vdutta
063d20932a urlfilter: 1.1.3 2022-06-15 17:57:09 +05:30
vdutta
59752df3d4 bbf: 6.7.7 2022-06-15 17:56:33 +05:30
Grzegorz Sluja
66f28e376d endptmngr: Fixes for call waiting and 3way call scenarios 2022-06-15 10:32:41 +02:00
Jakob Olsson
fbb6a84da8 map-agent: add missing uci validation and new cfg option to default 2022-06-14 15:13:13 +02:00
vdutta
bcd8b4f010 bbf: 6.7.6 2022-06-14 18:34:26 +05:30
vdutta
e98ef22bc5 icwmp: 8.4.16 2022-06-14 18:33:59 +05:30
Jakob Olsson
c45938f5ad map-topology: 2.5.0.4 2022-06-14 09:50:03 +02:00
Jakob Olsson
05b24396af map-agent: 2.8.1.2 2022-06-13 17:34:57 +02:00
Jakob Olsson
ba0e9e25ba map-agent: 2.8.1.1 2022-06-13 17:21:10 +02:00
Jakob Olsson
a6005cb439 map-agent: 2.8.1.0 2022-06-13 16:50:32 +02:00
Jakob Olsson
3ebb026453 map-agent: multiap: manage wpa_supplicant bssid_ignore 2022-06-13 16:50:32 +02:00
Jakob Olsson
921b0fc335 map-agent: multiap: introduce func to clear bssid of all bstas 2022-06-13 16:04:00 +02:00
vdutta
10eeef5a32 bbf: 6.7.5 2022-06-10 20:15:17 +05:30
vdutta
a55c39c32e uspd: 2.2.10 2022-06-10 20:12:26 +05:30
vdutta
70422f048b icwmp: 8.4.15 2022-06-10 18:42:05 +05:30
Jakob Olsson
8670fb8e7d map-topology: 2.5.0.3 2022-06-10 10:51:46 +02:00
Jakob Olsson
54ddfb5b2d map-topology: 2.5.0.2 2022-06-09 14:17:58 +02:00
Amin Ben Ramdhane
e8cdea9a79 bbf: 6.7.5 2022-06-09 17:09:43 +05:30
Amin Ben Ramdhane
7613b55f49 uspd: 2.2.9 2022-06-09 16:10:03 +05:30
Amin Ben Ramdhane
ecc65760b7 bbf: 6.7.3 2022-06-09 16:10:03 +05:30
Amit Kumar
053c36c1c7 qosmngr: updated QoS clasification
l3 iptables rule with ethx was not matching this was causing incorrect classification to wrong queue.
ebtables rule correction done with ethertype,protocol and port to classify packet for destination queue.
2022-06-09 06:31:02 +00:00
Grzegorz Sluja
7d9325abff dectmngr: Fix scenario when active call hangs up and return to onhold call 2022-06-08 17:55:07 +02:00
vdutta
baee22e19f urlfilter: 1.1.2 2022-06-08 19:57:25 +05:30
vdutta
cc765c2704 uspd: 2.2.8 2022-06-08 09:34:43 +05:30
vdutta
2ae8cd2987 bbf: 6.7.2 2022-06-08 09:33:47 +05:30
Sukru Senli
1ce681afac sulu: 1.0.10 2022-06-07 19:59:59 +02:00
vdutta
b66629350d icwmp: 8.4.14 2022-06-07 20:53:57 +05:30
vdutta
3a6dce64de stunc: 1.1.11 2022-06-07 19:13:09 +05:30
Jakob Olsson
fbf4c2d7ed map-topology: 2.5.0.1 2022-06-03 17:07:09 +02:00
Yalu Zhang
57386b0e87 Update packages endptmngr and dectmngr
Support call waiting and 3 way call for DECT
2022-06-03 13:58:32 +02:00
Jakob Olsson
37505a1c24 map-agent: 2.8.0.5 2022-06-03 09:36:44 +02:00
Jakob Olsson
4b28a1cd4a map-agent: 2.8.0.4 2022-06-02 15:16:25 +02:00
Jakob Olsson
26fff3a9ac wfadatad: 2.8.0.1 2022-06-02 09:59:34 +02:00
Jakob Olsson
fe3592b382 map-controller: 2.7.0.1 2022-06-01 10:17:23 +02:00
Jakob Olsson
78cc239b3d map-agent: 2.8.0.3 2022-05-31 15:58:50 +02:00
Yalu Zhang
714c822e7d Update package endptmngr and dectmngr
dectmngr-3.5.2: Release the call completely when the first handset rejects an incoming call
endptmngr: Send CALL_REJECT event to Asterisk when DECT handset rejects the call
2022-05-31 14:48:56 +02:00
Anjan Chanda
d5d8cbff6e ieee1905: 4.9.5 2022-05-31 10:57:28 +02:00
Jakob Olsson
66f5f5315a map-agent: 2.8.0.2 2022-05-30 17:08:09 +02:00
Jakob Olsson
96a8f4f8fa map-agent: 2.8.0.1 2022-05-30 16:05:12 +02:00
Jakob Olsson
80b71b4a9c map-agent: 2.8.0.0 with new license update for release-6.5 2022-05-30 14:49:31 +02:00
Jakob Olsson
cb86ec3c50 Revert "map-agent: 2.8.0.0 with new license update"
This reverts commit 2e30eb75b5.
2022-05-30 14:48:18 +02:00
Sukru Senli
6451da621d wfadatad: 2.8.0.0 BSD-3-Clause license change 2022-05-30 14:41:11 +02:00
Sukru Senli
8596640c59 map-agent: update license to BSD-3-Clause 2022-05-30 14:35:42 +02:00
Sukru Senli
e61adabad1 map-controller: update license to BSD-3-Clause 2022-05-30 14:35:29 +02:00
Sukru Senli
2e30eb75b5 map-agent: 2.8.0.0 with new license update 2022-05-30 13:28:22 +02:00
Sukru Senli
b00dbbfc16 map-topology: 2.5.0.0 with new license update 2022-05-30 13:24:34 +02:00
suvendhu
7acb31977c twamp: 1.2.0 2022-05-30 14:19:21 +05:30
Jakob Olsson
8f075c2dde map-agent: 2.7.2.6 2022-05-30 10:33:31 +02:00
Sukru Senli
15ab530afb usp-js: add license 2022-05-28 18:38:18 +02:00
Sukru Senli
d7d28d4d53 smwodd: add license 2022-05-28 18:34:41 +02:00
Sukru Senli
ac05fc5e09 map-topology: correct license 2022-05-28 18:07:20 +02:00
Sukru Senli
affd3a59ee shflags: remove unused package 2022-05-28 18:07:17 +02:00
Sukru Senli
702558940f libmicroxml: remove unused package 2022-05-28 18:07:09 +02:00
Sukru Senli
96af293828 sulu: 1.0.9 2022-05-27 16:07:31 +02:00
vdutta
9220eaab7f bbf: 6.6.43 2022-05-26 18:56:25 +05:30
Jakob Olsson
d2e6343808 map-topology: 2.4.0.5 2022-05-25 18:52:49 +02:00
sverma
8b71e43391 wfadatad: 2.7.0.7 2022-05-25 20:42:01 +05:30
Sukru Senli
b12b3dcf79 sulu: 1.0.8 2022-05-25 17:08:48 +02:00
vdutta
2af76e93d6 bbf: 6.6.42 2022-05-25 20:10:31 +05:30
Jakob Olsson
8eff3b57e7 map-agent: 2.7.2.5 2022-05-25 16:31:56 +02:00
vdutta
24470ed5f8 icwmp: 8.4.12 2022-05-25 19:40:16 +05:30
Sukru Senli
aba55434de sulu: 1.0.7 2022-05-25 15:33:40 +02:00
vdutta
49a4936cc0 swmodd: 2.1.5 2022-05-25 18:17:30 +05:30
vdutta
1d63ac6583 questd: 5.2.4 2022-05-25 18:13:52 +05:30
vdutta
bb9f180b77 rulengd: 1.2.7 2022-05-25 18:13:28 +05:30
Jakob Olsson
64c624c281 ieee1905: 4.9.2 2022-05-25 12:40:59 +02:00
vdutta
d7946e13f1 bbf: 6.6.41 2022-05-24 19:18:44 +05:30
vdutta
baa19aad3f bbf: Heartbeat support 2022-05-24 19:12:42 +05:30
vdutta
48c0d51e0e icwmp: Heartbeat support 2022-05-24 19:12:01 +05:30
vdutta
f0301c8a45 bbf: 6.6.39 2022-05-24 11:59:32 +05:30
vdutta
458a57bbb7 swmodd: 2.1.4 2022-05-24 11:58:55 +05:30
Sukru Senli
ebcee30bce sulu: 1.0.6 2022-05-23 11:41:00 +02:00
Sukru Senli
34f90babf5 sulu: 1.0.5 2022-05-20 15:44:41 +02:00
Jakob Olsson
34dc1fed4b map-topology: 2.4.0.4 2022-05-20 13:09:08 +02:00
vdutta
7633ca403c periodicstats: 1.1.3 2022-05-20 10:15:46 +05:30
vdutta
ec392c923c icwmp: 8.4.10 2022-05-20 10:14:59 +05:30
Stanislaw Gruszka
24205bf73f iop: config: enable ip-bridge 2022-05-19 14:42:33 +00:00
Jakob Olsson
76b1e43b6f map-topology: 2.4.0.3 2022-05-19 14:52:09 +02:00
Jakob Olsson
4672afb6de ieee1905: 4.9.1 2022-05-19 13:16:15 +02:00
Jakob Olsson
d2ff5738cd wfadatad: 2.7.0.6 2022-05-19 13:13:45 +02:00
Jakob Olsson
43246014e1 map-topology: 2.4.0.2 2022-05-19 13:03:44 +02:00
Amin Ben Ramdhane
115b752ade bbf: 6.6.38
(cherry picked from commit 62935f5016)
2022-05-19 03:26:06 +00:00
Amin Ben Ramdhane
26b06548f6 udpecho: 2.0.1
(cherry picked from commit 3b7b6fd627)
2022-05-19 03:25:18 +00:00
vdutta
6c99b9fc72 icwmp: 8.4.9
(cherry picked from commit d68a6add62)
2022-05-19 03:24:23 +00:00
vdutta
135ebebd44 stunc: 1.1.9
(cherry picked from commit 12b6a72a48)
2022-05-19 03:23:13 +00:00
Jakob Olsson
2d188b5c37 map-agent: 2.7.2.4 2022-05-18 14:53:58 +02:00
Amit KUmar
14ce1429a4 map-topology: per host statistics collection
included conntrack netfilter library
2022-05-18 10:32:31 +02:00
Jakob Olsson
a6b585cccf map-agent: multiap: lock operations on backhaul file 2022-05-18 10:29:40 +02:00
Amit KUmar
6db304b6ff qosmngr: WRR schdeuling configuration
sequence corrected in initialization as first tm initialization
then delcfg. porttminit bydefault does queue configuration as SP.
2022-05-17 17:07:46 +02:00
Amin Ben Ramdhane
817a7e8301 bbf: 6.6.37 2022-05-17 17:06:49 +02:00
Jakob Olsson
e8790801d0 map: prepend all multiap packages version number with the supported revision 2022-05-17 15:11:03 +02:00
Jakob Olsson
a6790ac523 map-agent: 7.2.3 2022-05-17 15:07:40 +02:00
Jakob Olsson
76656bb043 map-controller: 6.0.22 2022-05-17 13:08:18 +02:00
202 changed files with 2876 additions and 14579 deletions

78
ated/Makefile Normal file
View File

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

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm
PKG_VERSION:=6.8.19
PKG_VERSION:=6.8.7
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_VERSION:=4e82190d88f73494dbc6d261e6eb507e348e10e3
PKG_SOURCE_VERSION:=28ed108048c4d63bd0dc16dbf37ad52ea60c57b6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -25,8 +25,7 @@ define Package/libbbf_api
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=BBF datamodel library, provides API to extend datamodel using DotSO plugins
ABI_VERSION:=1.0
TITLE:=Library for libbbfdm API
endef
define Package/libbbfdm/default
@@ -34,7 +33,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 +libcurl +libbbf_api
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libcurl
endef
define Package/libbbfdm
@@ -67,17 +66,6 @@ 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
@@ -149,19 +137,13 @@ 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
$(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
ifeq ($(CONFIG_PACKAGE_mosquitto-ssl),y)
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/etc/uci-defaults/01-mosquitto-config $(1)/etc/uci-defaults/
endif
endef
define Package/libbbfdm/default/prerm
@@ -170,18 +152,6 @@ 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)
@@ -199,9 +169,9 @@ define Build/InstallDev
$(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)/libbbfdm.so $(1)/usr/lib/
touch $(1)/usr/lib/libbbf_api.so
endef
$(eval $(call BuildPackage,userinterface))
$(eval $(call BuildPackage,libbbf_api))
$(eval $(call BuildPackage,libbbfdm))
$(eval $(call BuildPackage,libbbfdm-openssl))

View File

@@ -1,117 +0,0 @@
{
"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": "unsignedInt",
"read": true,
"write": true,
"version": "2.0",
"protocols": [
"cwmp",
"usp"
],
"range": [
{
"max": 65535
}
],
"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

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

View File

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

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

@@ -1,46 +0,0 @@
#!/bin/sh
config_mosquitto_owrt() {
sec=$(uci -q get mosquitto.owrt)
if [ -z "${sec}" ]; then
sec=$(uci -q add mosquitto owrt)
uci -q rename mosquitto."${sec}"="owrt"
fi
uci -q set mosquitto.owrt.use_uci="1"
uci -q set mosquitto.owrt.write_pid="1"
uci -q commit mosquitto
}
config_mosquitto_general() {
sec=$(uci -q get mosquitto.mosquitto)
if [ -z "${sec}" ]; then
sec=$(uci -q add mosquitto mosquitto)
uci -q rename mosquitto."${sec}"="mosquitto"
fi
uci -q set mosquitto.mosquitto.log_dest="syslog"
uci -q set mosquitto.mosquitto.log_facility="5"
uci -q set mosquitto.mosquitto.log_timestamp="1"
uci -q set mosquitto.mosquitto.log_types="error warning notice"
uci -q set mosquitto.mosquitto.per_listener_settings="1"
uci -q commit mosquitto
}
config_mosquitto_persistence() {
sec=$(uci -q get mosquitto.persistence)
if [ -z "${sec}" ]; then
sec=$(uci -q add mosquitto persistence)
uci -q rename mosquitto."${sec}"="persistence"
fi
uci -q set mosquitto.persistence.persistence="0"
uci -q set mosquitto.persistence.location="/var/run"
uci -q commit mosquitto
}
if [ -f "/etc/config/mosquitto" ]; then
config_mosquitto_owrt
config_mosquitto_general
config_mosquitto_persistence
fi

View File

@@ -1,12 +0,0 @@
#!/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.9
PKG_VERSION:=2.0.3
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git
PKG_SOURCE_VERSION:=6e85d2032e66df581fae7c72cd83cc89367b8fc8
PKG_SOURCE_VERSION:=85d7486a21a9eb0e0f345b587b3ac506edcb72fe
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -25,6 +25,8 @@ 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)
@@ -32,7 +34,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=BBF BulkData Collection
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json +zlib
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json
endef
TARGET_CFLAGS += \
@@ -48,8 +50,8 @@ endif
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bulkdatad $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/bbfdm/json
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bbf_plugin/*.json $(1)/etc/bbfdm/json
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bbf_plugin/*.so $(1)/usr/lib/bbfdm
$(CP) ./files/* $(1)/
endef

View File

@@ -7,19 +7,22 @@ USE_PROCD=1
PROG="/usr/sbin/bulkdatad"
start_service() {
local enable
local enable=$(uci -q get bulkdata.bulkdata.enable)
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"
[ "$enable" != "1" ] && {
return 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.6
PKG_VERSION:=3.5.4
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=81450033d98fcdb68911e2148f48d190492090a6
PKG_SOURCE_VERSION:=54ebb54162fae9fdd6e327e430cf57aa217c176d
PKG_MIRROR_HASH:=skip
endif

Binary file not shown.

Binary file not shown.

View File

@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dslmngr
PKG_VERSION:=1.2.0
PKG_VERSION:=1.1.2
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
@@ -26,7 +26,7 @@ PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
ifeq ($(CONFIG_TARGET_brcmbca),y)
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
TARGET_PLATFORM=BROADCOM
else
$(info Unexpected CONFIG_TARGET)
@@ -68,10 +68,6 @@ define Build/Compile
endef
define Package/dslmngr/install
$(CP) ./files/common/* $(1)/
ifeq ($(CONFIG_TARGET_brcmbca),y)
$(CP) ./files/broadcom/* $(1)/
endif
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/dslmngr $(1)/sbin/
endef

View File

@@ -1,311 +0,0 @@
#!/bin/sh
. /lib/functions.sh
# ATM #
check_pvc() {
local vpi=$1
local vci=$2
local ret
ret=$(xtmctl operate conn --show | awk -v test="$vpi/$vci" '{if ($3==test ) print $5 }')
case $ret in
''|*[!0-9]*) return 0 ;;
*) return $ret ;;
esac
}
check_xtm_list() {
local qclass=$1
local pcr scr mbs
local ret
case $# in
1)
pcr=0
scr=0
mbs=0
;;
2)
pcr=$2
scr=0
mbs=0
;;
4)
pcr=$2
scr=$3
mbs=$4
;;
esac
ret=$(xtmctl operate tdte --show | awk -v test="$qclass" -v pcr="$pcr" -v scr="$scr" -v mbs="$mbs" '{if ($2==test && $3==pcr && $4==scr && $5==mbs ) print $1 }')
case $ret in
''|*[!0-9]*) return 0 ;;
*) return $ret ;;
esac
}
configure_atm_device() {
local name vpi vci device link_type encapsulation qos_class pcr mbs scr i
config_get name $1 name "ATM"
config_get vpi $1 vpi "8"
config_get vci $1 vci "35"
config_get device $1 device "atm0"
config_get link_type $1 link_type "eoa"
config_get encapsulation $1 encapsulation "llc"
config_get qos_class $1 qos_class "ubr"
config_get pcr $1 pcr
config_get mbs $1 mbs
config_get scr $1 scr
check_pvc $vpi $vci
ret=$?
if [ "$ret" -eq 0 ]; then
check_xtm_list $qos_class $pcr $scr $mbs
ret=$?
if [ "$ret" -eq 0 ]; then
case $qos_class in # ubr, cbr, gfr, vbr-nrt, vbr-rt, ubr+, abr
ubr)
xtmctl operate tdte --add "$qos_class"
;;
ubr_pcr|ubr+)
xtmctl operate tdte --add "$qos_class" $pcr
;;
cbr)
xtmctl operate tdte --add "$qos_class" $pcr
;;
nrtvbr|vbr-nrt)
xtmctl operate tdte --add "$qos_class" $pcr $scr $mbs
;;
rtvbr|vbr-rt)
xtmctl operate tdte --add "$qos_class" $pcr $scr $mbs
;;
gfr)
;;
abr)
;;
esac
fi
case $link_type in # EoA, IPoA, PPPoA, CIP
EoA|eoa)
[ $encapsulation == "vcmux" ] && encapsulation="vcmux_eth" || encapsulation="llcsnap_eth"
;;
PPPoA|pppoa)
[ $encapsulation == "vcmux" ] && encapsulation="vcmux_pppoa" || encapsulation="llcencaps_ppp"
;;
IPoA|ipoa)
[ $encapsulation == "vcmux" ] && encapsulation="vcmux_ipoa" || encapsulation="llcsnap_rtip"
;;
CIP|cip)
;;
esac
check_xtm_list $qos_class $pcr $scr $mbs
ret="$?"
xtmctl operate conn --add 1.$vpi.$vci aal5 $encapsulation 0 1 $ret
for i in `seq 0 7`; do
xtmctl operate conn --addq 1.$vpi.$vci $i wrr 1 dt # queue priority 0-7
done
xtmctl operate conn --createnetdev 1.$vpi.$vci $device
xtmctl operate intf --state 1 enable
fi
}
remove_atm_devices() {
local vpi vci rest
local vpivci=`xtmctl operate conn --show | grep "ATM\|mode" | awk '{if (NR!=1 && $1!="PTM") {print $3}}'`
for i in $vpivci
do
rest=${i#\/}
vpi=${rest%%\/*}
vci=${rest#*\/}
echo "xtmctl operate conn --delete 1.$vpi.$vci"
xtmctl operate conn --delete 1.$vpi.$vci
echo "xtmctl operate conn --deletenetdev 1.$vpi.$vci"
xtmctl operate conn --deletenetdev 1.$vpi.$vci
done
}
create_atm_devices() {
echo "Creating ATM Device(s)"
config_load dsl
config_foreach configure_atm_device atm-device
}
# ATM END #
# PTM #
check_ptm() {
local ret
local ptmprio=$1
local dslat=$2
if [ "$ptmprio" -eq 2 ]; then
ptmprio="high"
else
ptmprio="low"
fi
ret=$(xtmctl operate conn --show | awk -v dslat="$dslat" -v ptmprio="$ptmprio" '{if ($2 == dslat && $3 == ptmprio ) print $2 }')
case $ret in
''|*[!0-9]*) return 0 ;;
*) return $ret ;;
esac
}
configure_ptm_device() {
local name device priority portid i
config_get name $1 name "PTM"
config_get device $1 device "ptm0"
config_get priority $1 priority 1
config_get portid $1 portid 1
check_ptm $priority $portid
ret=$?
if [ "$ret" -eq 0 ]; then
xtmctl operate conn --add $portid.$priority
for i in `seq 0 7`; do
xtmctl operate conn --addq $portid.$priority $i wrr 1 dt -1 -1 3000 # queue priority 0-7
done
echo "xtmctl operate conn --createnetdev $portid.$priority $device"
xtmctl operate conn --createnetdev $portid.$priority $device
xtmctl operate intf --state 1 enable
fi
}
remove_ptm_devices() {
local delptm
local x=0
IFS=$'\n'
for i in `xtmctl operate conn --show | grep "PTM\|mode"`
do
if [ $x -eq 1 ]; then
delptm=$(echo $i | awk '{if ($1!="ATM") print $2"."$11}')
echo "xtmctl operate conn --delete $delptm"
xtmctl operate conn --delete $delptm
xtmctl operate conn --deletenetdev $delptm
fi
x=1
done
unset IFS
}
create_ptm_devices() {
echo "Creating PTM Device(s)"
config_load dsl
config_foreach configure_ptm_device ptm-device
}
# PTM END #
prioritize_arp()
{
ebtables -t nat -D POSTROUTING -j mark --mark-or 0x7 -p ARP >/dev/null
ebtables -t nat -A POSTROUTING -j mark --mark-or 0x7 -p ARP >/dev/null
}
xtm_remove_devices() {
remove_atm_devices
remove_ptm_devices
}
xtm_create_devices() {
local tpstc="$(xdslctl info --show | grep TPS-TC)"
if echo "$tpstc" | grep -q "ATM Mode"; then
create_atm_devices
elif echo "$tpstc" | grep -q "PTM Mode"; then
create_ptm_devices
fi
}
xdsl_configure() {
local VDSL=0
local GFAST=0
local mod=""
local modes=""
local profile=""
config_load dsl
# Modes
config_get mode line mode
for mod in $mode; do
[ $mod == "gdmt" ] && modes="${modes}d"
[ $mod == "glite" ] && modes="${modes}l"
[ $mod == "t1413" ] && modes="${modes}t"
[ $mod == "adsl2" ] && modes="${modes}2"
[ $mod == "adsl2p" ] && modes="${modes}p"
[ $mod == "annexl" ] && modes="${modes}e"
[ $mod == "annexm" ] && modes="${modes}m"
[ $mod == "vdsl2" ] && modes="${modes}v" && VDSL=1
[ $mod == "gfast" ] && modes="${modes}f" && GFAST=1
done
# VDSL Profiles
config_get profile line profile
# Capabilities
config_get_bool bitswap line bitswap 1
[ $bitswap -eq 1 ] && bitswap="on" || bitswap="off"
config_get_bool sra line sra 1
[ $sra -eq 1 ] && sra="on" || sra="off"
# config_get_bool trellis line trellis 1
config_get_bool sesdrop line sesdrop 0
[ $sesdrop -eq 1 ] && sesdrop="on" || sesdrop="off"
# VDSL2 only
config_get_bool us0 line us0 1
[ $us0 -eq 1 ] && us0="on" || us0="off"
# config_get_bool dynamicd line dynamicd 1
# config_get_bool dynamicf line dynamicf 1
config_get_bool sos line sos 0
[ $sos -eq 1 ] && sos="on" || sos="off"
config_get_bool phyReXmtUs line phyReXmtUs 0
config_get_bool phyReXmtDs line phyReXmtDs 1
phyReXmt=$(( $((phyReXmtUs<<1)) + phyReXmtDs))
if [ $VDSL -eq 1 -o $GFAST -eq 1 ]; then
echo "xdslctl start --up --mod $modes --profile "$profile" --sra $sra --bitswap $bitswap --us0 $us0 --sesdrop $sesdrop --SOS $sos --phyReXmt $phyReXmt"
xdslctl start --up --mod $modes --profile "$profile" --sra $sra --bitswap $bitswap --us0 $us0 --sesdrop $sesdrop --SOS $sos --phyReXmt $phyReXmt
# G.Fast hardware to VDSL hardware, to set the driver bit kPhyCfg2EnableGfastVdslMMTimeOut0.
# Enable V43 tone for GFAST.
echo "xdslctl configure1 --phycfg 0 0 0 0 0 0 0 0 0 0 0 0x1400400 0x1400400"
xdslctl configure1 --phycfg 0 0 0 0 0 0 0 0 0 0 0 0x1400400 0x1400400
else
echo "xdslctl start --up --mod $modes --sra $sra --bitswap $bitswap --sesdrop $sesdrop --SOS $sos --phyReXmt $phyReXmt"
xdslctl start --up --mod $modes --sra $sra --bitswap $bitswap --sesdrop $sesdrop --SOS $sos --phyReXmt $phyReXmt
fi
if [ $GFAST -eq 1 ]; then
# G.Fast hardware to VDSL hardware, to set the driver bit kPhyCfg2EnableGfastVdslMMTimeOut0.
# Enable V43 tone for GFAST.
echo "xdslctl configure1 --phycfg 0 0 0 0 0 0 0 0 0 0 0 0x1400400 0x1400400"
xdslctl configure1 --phycfg 0 0 0 0 0 0 0 0 0 0 0 0x1400400 0x1400400
fi
}
xdsl_stop() {
# echo "Stopping DSL"
# stop causes IRQ issues
# xdslctl stop
return 0
}
xdsl_init() {
prioritize_arp
echo "Starting DSL"
xtmctl start
xtmctl operate intf --state 1 enable
}

View File

@@ -1,53 +0,0 @@
# OEM specific parameters
config oem-parameters 'oem'
# option country_code "0000" # 2 bytes hex
# option vendor_id "IO" # 4 bytes string
# option vendor_suffix "0000" # 2 bytes hex
# option sw_version "iopsys" # 16 bytes string
# option serial_nr "00000000" # 32 bytes string
# DSL Modes
config dsl-line line
list mode gdmt
list mode glite
list mode t1413
list mode adsl2
list mode adsl2p
list mode annexl
list mode annexm
list mode vdsl2
# VDSL2 profiles
list profile 8a
list profile 8b
list profile 8c
list profile 8d
list profile 12a
list profile 12b
list profile 17a
list profile 30a
option bitswap 1
option sra 1
option us0 1 # VDSL2 only
option sesdrop 0
option sos 0
option phyReXmtUs 0
option phyReXmtDs 1
config atm-device atm0
option name 'ATM'
option vpi '8'
option vci '35'
option device atm0
option link_type 'eoa' # EoA, IPoA, PPPoA, CIP
option encapsulation 'llc' # llc, vcmux
option qos_class 'ubr' # ubr, cbr, gfr, vbr-nrt, vbr-rt, ubr+, abr
# option pcr '512'
# option scr '256'
# option mbs '1024'
config ptm-device ptm0
option name 'PTM'
option device 'ptm0'
option priority '1'
option portid '1'

View File

@@ -1,7 +0,0 @@
[ "$STATUS" == "up" -o "$STATUS" == "down" ] || exit 0
. /lib/functions.sh
include /lib/dsl
xtm_remove_devices
xtm_create_devices

View File

@@ -1,7 +0,0 @@
if [ "$STATUS" == "up" ]; then
ubus call led.dsl set '{"state":"ok"}'
elif [ "$STATUS" == "down" ]; then
ubus call led.dsl set '{"state":"off"}'
elif [ "$STATUS" == "training" ]; then
ubus call led.dsl set '{"state":"alert"}'
fi

View File

@@ -1,48 +0,0 @@
#!/bin/sh /etc/rc.common
. /lib/functions.sh
include /lib/dsl
START=20
USE_PROCD=1
DSLMNGR=$(which dslmngr)
start_service() {
[ -n "$DSLMNGR" ] && {
procd_open_instance
procd_set_param command "$DSLMNGR"
procd_set_param respawn
procd_close_instance
}
xdsl_configure
xtm_create_devices
}
stop_service() {
[ -n "$DSLMNGR" ] && service_stop $DSLMNGR
xtm_remove_devices
xdsl_stop
}
boot() {
local HASADSL="$(db -q get hw.board.hasAdsl)"
local HASVDSL="$(db -q get hw.board.hasVdsl)"
[ "$HASADSL" == "1" -o "$HASVDSL" == "1" ] || return
xdsl_init
start
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger dsl
}

View File

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

View File

@@ -19,7 +19,7 @@ include $(INCLUDE_DIR)/package.mk
-include $(TOPDIR)/.config
ifneq ($(CONFIG_TARGET_brcmbca),)
ifneq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),)
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_brcmbca),)
ifneq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),)
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:=7.2.7
PKG_VERSION:=6.4.44
PKG_RELEASE:=1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=3d6d1347668408e77c327ddf81602e70af8b3d98
PKG_SOURCE_VERSION:=e4f811b7cd2836cdcce5ea0f97f515a317da5bc3
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,66 +36,38 @@ define Package/easy-soc-libs
MENU:=1
endef
ifeq ($(CONFIG_TARGET_brcmbca),y)
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),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_WIFI_TYPE=MAC80211
TARGET_CFLAGS +=-DIOPSYS_MAC80211
TARGET_CFLAGS +=-DIOPSYS_MEDIATEK
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 ifeq ($(CONFIG_TARGET_ipq95xx),y)
TARGET_PLATFORM=IPQ95XX
TARGET_WIFI_TYPE=MAC80211
TARGET_CFLAGS +=-DIPQ95XX
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) \
$(if $(CONFIG_PACKAGE_libwifiutils),libwifi) \
$(if $(CONFIG_PACKAGE_libwifi),libwifi) \
$(if $(CONFIG_PACKAGE_libdsl),libdsl) \
$(if $(CONFIG_PACKAGE_libethernet),libethernet) \
$(if $(CONFIG_PACKAGE_libqos),libqos)
ifneq ($(CONFIG_PACKAGE_libwifi),)
TARGET_CFLAGS +=-DHAS_WIFI
endif
esl-pkgs := \
$(if $(CONFIG_PACKAGE_libeasy),libeasy) \
$(if $(CONFIG_PACKAGE_libwifiutils),libwifiutils) \
$(if $(CONFIG_PACKAGE_libwifi),libwifi) \
$(if $(CONFIG_PACKAGE_libdsl),libdsl) \
$(if $(CONFIG_PACKAGE_libethernet),libethernet) \
$(if $(CONFIG_PACKAGE_libqos),libqos)
esl-pkgs-all := \
EASY_SOC_LIBS := \
libeasy \
libwifiutils \
libwifi \
libdsl \
libethernet \
@@ -115,7 +87,6 @@ MAKE_FLAGS += \
LDFLAGS="$(TARGET_LDFLAGS)" \
FPIC="$(FPIC)" \
PLATFORM="$(TARGET_PLATFORM)" \
WIFI_TYPE="$(TARGET_WIFI_TYPE)" \
subdirs="$(subdirs)"
ifeq ($(LOCAL_DEV),1)
@@ -145,15 +116,15 @@ define Build/Compile
$(Build/Compile/rebuild)
touch $(PKG_BUILD_DIR)/.config_$(CONFIG_TARGET_PROFILE)
$(call Build/Compile/Default)
$(foreach dir,$(esl-pkgs),$(call Build/Compile/$(dir)))
$(foreach dir,$(subdirs),$(call Build/Compile/$(dir)))
endef
define Build/InstallDev
$(foreach dir,$(esl-pkgs),$(call Build/InstallDev/$(dir),$(1),$(2));)
$(foreach dir,$(subdirs),$(call Build/InstallDev/$(dir),$(1),$(2));)
endef
define Package/easy-soc-libs/install
:
endef
$(eval $(foreach e,$(esl-pkgs-all),$(call BuildPackage,$(e))))
$(eval $(foreach e,$(EASY_SOC_LIBS),$(call BuildPackage,$(e))))

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 +TARGET_airoha:ecnt_api
DEPENDS+=+libnl +libnl-route +libeasy +TARGET_iopsys_ramips:swconfig
endef
define Package/libethernet/config

View File

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

View File

@@ -7,13 +7,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=endptmngr
PKG_VERSION:=0.6
PKG_VERSION:=0.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:=fb85081443c19b5062bede49c80b1802c0f05d34
PKG_SOURCE_VERSION:=c099d6b0438f945d91bf3c9718da730a8a52ff27
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_504040
export CONFIG_BRCM_SDK_VER_504021
export CONFIG_BCM_CHIP_ID
include $(INCLUDE_DIR)/package.mk

View File

@@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ethmngr
PKG_VERSION:=2.1.0
PKG_VERSION:=2.0.1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=5a0ff3bc7c49dcb05129f423ef8e0c4929f6aa03
@@ -23,7 +23,7 @@ define Package/ethmngr
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Ethernet status and configration utility
DEPENDS:=+(TARGET_brcmbca||TARGET_airoha||TARGET_ipq95xx):libethernet +libuci +libubox +ubus +libpthread +libnl-genl
DEPENDS:=+libethernet +libuci +libubox +ubus +libpthread +libnl-genl
endef
define Package/ethmngr/description
@@ -37,24 +37,10 @@ TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include/libnl3 \
-D_GNU_SOURCE
ifeq ($(CONFIG_TARGET_brcmbca)$(CONFIG_TARGET_airoha)$(CONFIG_TARGET_ipq95xx),)
define Build/Compile
endef
endif
define Package/ethmngr/install
$(CP) ./files/common/* $(1)/
ifneq ($(CONFIG_TARGET_brcmbca),)
$(CP) ./files/broadcom/* $(1)/
else ifneq ($(CONFIG_TARGET_airoha),)
$(CP) ./files/airoha/* $(1)/
else
$(CP) ./files/linux/* $(1)/
endif
ifneq ($(CONFIG_TARGET_brcmbca)$(CONFIG_TARGET_airoha)$(CONFIG_TARGET_ipq95xx),)
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/init.d $(1)/usr/sbin
$(INSTALL_BIN) ./files/ethmngr.init $(1)/etc/init.d/ethmngr
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ethmngr $(1)/usr/sbin/
endif
endef
$(eval $(call BuildPackage,ethmngr))

View File

@@ -1,208 +0,0 @@
#!/bin/sh
. /lib/functions.sh
unset -f switchmgr
# alias for switchmgr
switchmgr() {
"/userfs/bin/switchmgr" "$@"
}
unset -f tc3162_get_lan_port
# get lan port port by ifname
# arg1: port ifname, ex: eth0.1
tc3162_get_lan_port() {
[[ -z "$1" ]] && return 255
local ifname="$1"
local if_idx=255
# only for tc3162 eth switch ports (eth0.x, 0 < x < 7)
case "${ifname}" in
eth0.*)
;;
*)
logger -t "port-management" \
"unsupported - ${ifname} is not tc3162 switch port"
return 255
;;
esac
let "if_idx=$(echo "${ifname}" | cut -f2 -d'.')"
[[ -z "${if_idx}" ]] && return 255
[[ ${if_idx} -lt 1 || ${if_idx} -gt 6 ]] && {
logger -t "port-management" \
"incorrect tc3162 lan port index ${if_idx} picked from ifname ${ifname}"
return 255
}
let "if_idx=${if_idx}-1"
return ${if_idx}
}
unset -f tc3162_get_mapped_port
# get mapped switch port by ifname
# arg1: port ifname, ex: eth0.1
tc3162_get_mapped_port() {
[[ -z "$1" ]] && return 255
local ifname="$1"
local if_idx=255
local prtmap_procfile="/proc/tc3162/eth_portmap"
local lan_prt=255
local port=255
local prtmap_out_line_num=4
local prtmap_out_line=""
# check "lan port map" marker in portmap output string
prtmap_out_line="$(sed -n "${prtmap_out_line_num}p" ${prtmap_procfile})"
[[ ${prtmap_out_line} != "lan_port_map" ]] && return 255
tc3162_get_lan_port "${ifname}"
let "if_idx=$?"
[[ -z "${if_idx}" || ${if_idx} -eq 255 ]] && return
# get lan portmapping string "lan_port mapped_port" for ifname by it's index
let "prtmap_out_line_num=${prtmap_out_line_num}+1+${if_idx}"
prtmap_out_line="$(sed -n "${prtmap_out_line_num}p" ${prtmap_procfile})"
# get and check lan port index from lan portmapping string
lan_prt=$(echo "${prtmap_out_line}" | cut -f 1 -d' ')
[[ -z "${lan_prt}" || "${if_idx}" != "${lan_prt}" ]] && return 255
# get and check mapped port from lan portmapping string
let "port=$(echo "${prtmap_out_line}" | cut -f 2 -d' ')"
[[ ${port} -lt 0 || ${port} -gt 255 ]] && return 255
return ${port}
}
unset -f get_max_port_speed
# arg1: port ifname, ex: eth0.1
get_max_port_speed() {
[[ -z "$1" ]] && { echo 0; return; }
local ifname="$1"
local port=255
local speed=0
[[ -d "/sys/class/net/${ifname}" ]] || {
logger -t "port-management" "interface ${ifname} is not found"
return
}
tc3162_get_lan_port "${ifname}"
let "port=$?"
[[ -z "${port}" || ${port} -eq 255 ]] && return
# tc3162 capability for all ports is 1Gbps
speed=1000
echo $speed
}
unset -f power_updown
# arg1: port ifname, ex: eth0.1
# arg2: port enabled, ex: 0/1/off/on/..
power_updown() {
[[ -z "$1" ]] && return
[[ -z "$2" ]] && return
local ifname="$1"
local enabled="$2"
local port=255
[[ -d "/sys/class/net/${ifname}" ]] || {
logger -t "port-management" "interface ${ifname} is not found"
return
}
let "enabled=$(get_bool "${enabled}" "-1")"
[[ ${enabled} -eq -1 ]] && return
tc3162_get_lan_port "${ifname}"
let "port=$?"
[[ -z "${port}" || ${port} -eq 255 ]] && return
switchmgr phy admin "${port}" "${enabled}"
}
unset -f set_port_settings
# arg1: port ifname, ex: eth0.1
# arg2: port enabled, ex: 0/1/off/on/..
# arg3: port speed, ex: 1000
# arg4: port duplex, ex: full
# arg5: port autoneg, ex: 0/1/off/on/..
# arg6: port eee, ex: 0/1/off/on/..
# arg7: port pause, ex: 0/1/off/on/..
set_port_settings() {
[[ -z "$1" ]] && return
[[ -z "$2" ]] && return
[[ -z "$3" ]] && return
[[ -z "$4" ]] && return
[[ -z "$5" ]] && return
[[ -z "$6" ]] && return
[[ -z "$7" ]] && return
local ifname="$1"
local enabled="$2"
local speed="$3"
local duplex="$4"
local autoneg=$5
local eee="$6"
local pause="$7"
local port=255
local speedmode=1
local last_speed=0
[[ -d "/sys/class/net/${ifname}" ]] || {
logger -t "port-management" "interface ${ifname} is not found"
return
}
let "enabled=$(get_bool "${enabled}" "-1")"
[[ ${enabled} -eq -1 ]] && return
let "autoneg=$(get_bool "${autoneg}" "-1")"
[[ ${autoneg} -eq -1 ]] && return
let "eee=$(get_bool "${eee}" "-1")"
[[ ${eee} -eq -1 ]] && return
let "pause=$(get_bool "${pause}" "-1")"
[[ ${pause} -eq -1 ]] && return
duplex="$(echo "${duplex}" | awk '{print tolower($0)}')"
[[ "${duplex}" != "half" && "${duplex}" != "full" ]] && return
tc3162_get_lan_port "${ifname}"
let "port=$?"
[[ -z "${port}" || ${port} -eq 255 ]] && return
last_speed="$(switchmgr phy maxspeed "${port}" | cut -f2 -d':')"
[[ -z "${last_speed}" || "${last_speed}" == "*Down*" ]] \
&& last_speed=${speed}
switchmgr phy pause "${port}" "${pause}"
# set speedmode: speed+duplex+autoneg
# FIXME: switchmgr has no separate setting for 1Gbps speed - use autoneg instead
if [[ ${autoneg} -eq 1 || ${speed} -gt 100 ]]; then
switchmgr phy speedmode ${port} "1"
else
[[ ${speed} -gt 10 ]] && let "speedmode=2" || let "speedmode=4"
[[ "${duplex}" == "half" ]] && let "speedmode=${speedmode}+1"
switchmgr phy speedmode "${port}" "${speedmode}"
fi
# TODO: implement MAC control register manipulations (mapped ports used) for
# eee settings change
# separate (tx/rx) pause (flow control) settings change
# set speed to 1Gbps separately from autoneg mode
# FIXME: workaround for duplex/pause settings being not applied if speed is unchanged
[[ ${last_speed} -eq ${speed} ]] && power_updown "${ifname}" 0
power_updown "${ifname}" ${enabled}
}

View File

@@ -1,140 +0,0 @@
# arg1: port ifname, ex: eth0
get_max_port_speed() {
if [ -z "$1" ]; then
echo 0
return
fi
local ifname="$1"
local phycap="$(ethctl $ifname media-type 2>/dev/null | grep 'PHY Capabilities' | awk '{print$NF}' | cut -d'|' -f1)"
local speed=1000
case "$phycap" in
10GFD) speed=10000 ;;
5GFD) speed=5000 ;;
2.5GFD) speed=2500 ;;
1GFD|1GHD) speed=1000 ;;
100MFD|100MHD) speed=100 ;;
10MFD|10MHD) speed=10 ;;
esac
echo $speed
}
# arg1: port name, ex: eth0
get_port_number() {
[ -z "$1" ] && return
local ports="0 1 2 3 4 5 6 7"
local units="0 1"
local port="$1"
local ifname
for unit in $units; do
for prt in $ports; do
ifname="$(ethswctl getifname $unit $prt 2>/dev/null | awk '{print$NF}')"
if [ "$ifname" == "$port" ]; then
echo "$unit $prt"
return
fi
done
done
}
# arg1: port ifname, ex: eth0
# arg2: port enabled, ex: 1
power_updown() {
local ifname="$1"
local enabled=$2
local updown="up"
[ $enabled -eq 0 ] && updown="down"
ethctl $ifname phy-power $updown >/dev/null
}
# arg1: port ifname, ex: eth0
# arg2: port enabled, ex: 1
# arg3: port speed, ex: 1000
# arg4: port duplex, ex: full
# arg5: port autoneg, ex: on
# arg6: port eee, ex: 0
# arg7: port pause, ex: 0
set_port_settings() {
local ifname="$1"
local enabled=$2
local speed="$3"
local duplex=$4
local autoneg=$5
local eee=$6
local pause=$7
[ -d /sys/class/net/$ifname ] || return
local unitport="$(get_port_number $ifname)"
local unit=$(echo $unitport | cut -d ' ' -f 1)
local port=$(echo $unitport | cut -d ' ' -f 2)
[ $autoneg -eq 1 ] && autoneg="on" || autoneg="off"
[ "$duplex" == "half" ] && duplex=0 || duplex=1
[ "$duplex" == 0 ] && dplx="HD" || dplx="FD"
[ "$autoneg" == "on" ] && media_type="auto" || media_type="$speed$dplx"
phycrossbar="$(ethctl $ifname phy-crossbar | head -1)"
crossbartype="$(echo $phycrossbar | awk '{print$2$3}')"
# Take only the last PHY Endpoint (non-Serdes) into account as Serdes port number precedes
[ "$crossbartype" == "oncrossbar" ] && pyhendpoint="$(echo $phycrossbar | awk '{print$NF}')"
phycaps="$(ethctl $ifname media-type ${pyhendpoint:+ port $pyhendpoint} | awk -F'PHY Capabilities: ' '{print$2}')"
numofcaps="$(echo $phycaps | tr '|' ' ' | wc -w)"
if [ "$numofcaps" == "1" ]; then
logger -t "port-management" "$ifname is capable of $phycaps only; not setting speed/duplex"
else
logger -t "port-management" "$ifname is capable of $phycaps; setting speed/duplex to $media_type"
ethctl $ifname media-type $media_type ${pyhendpoint:+ port $pyhendpoint} &>/dev/null
fi
[ $eee -eq 1 ] && eee="on" || eee="off"
ethtool --set-eee $ifname eee $eee 2>/dev/null
case $pause in
off|0)
pause=0x0
auto=off
rx=off
tx=off
;;
on|1)
pause=0x2
auto=off
rx=on
tx=on
;;
auto)
pause=0x1
auto=on
rx=on
tx=on
;;
tx)
pause=0x3
auto=off
rx=off
tx=on
;;
rx)
pause=0x4
auto=off
rx=on
tx=off
;;
esac
if [ "$auto" == "on" ]; then
# Use ethswctl utility to set pause autoneg
# as ethtool is not setting it properly
ethswctl -c pause -n $unit -p $port -v $pause 2>&1 >/dev/null
else
ethtool --pause $ifname autoneg $auto rx $rx tx $tx 2>/dev/null
fi
power_updown $ifname $enabled
}

View File

@@ -0,0 +1,19 @@
#!/bin/sh /etc/rc.common
START=95
STOP=10
USE_PROCD=1
PROG=/usr/sbin/ethmngr
start_service() {
procd_open_instance
procd_set_param command ${PROG}
procd_set_param respawn
procd_close_instance
}
reload_service() {
stop
start
}

View File

@@ -1,95 +0,0 @@
# arg1: port ifname, ex: eth0
get_max_port_speed() {
if [ -z "$1" ]; then
echo 0
return
fi
local ifname="$1"
local phycap="$(ethtool $ifname | grep -A 10 "Supported link modes" | grep 000 | tail -n 1 | awk '{print$NF}')"
local speed=1000
case "$phycap" in
10000*) speed=10000 ;;
5000*) speed=5000 ;;
2500*) speed=2500 ;;
1000*) speed=1000 ;;
100*) speed=100 ;;
10*) speed=10 ;;
esac
echo $speed
}
# arg1: port ifname, ex: eth0
# arg2: port enabled, ex: 1
power_updown() {
local ifname="$1"
local enabled=$2
local updown="up"
[ $enabled -eq 0 ] && updown="down"
ip link set dev $ifname $updown
}
# arg1: port ifname, ex: eth0
# arg2: port enabled, ex: 1
# arg3: port speed, ex: 1000
# arg4: port duplex, ex: full
# arg5: port autoneg, ex: on
# arg6: port eee, ex: 0
# arg7: port pause, ex: 0
set_port_settings() {
local ifname="$1"
local enabled=$2
local speed="$3"
local duplex=$4
local autoneg=$5
local eee=$6
local pause=$7
[ -d /sys/class/net/$ifname ] || return
[ $autoneg -eq 1 ] && autoneg="on" || autoneg="off"
ethtool --change $ifname speed $speed duplex $duplex autoneg $autoneg
[ $eee -eq 1 ] && eee="on" || eee="off"
ethtool --set-eee $ifname eee $eee 2>/dev/null
case $pause in
off|0)
pause=0x0
auto=off
rx=off
tx=off
;;
on|1)
pause=0x2
auto=off
rx=on
tx=on
;;
auto)
pause=0x1
auto=on
rx=on
tx=on
;;
tx)
pause=0x3
auto=off
rx=off
tx=on
;;
rx)
pause=0x4
auto=off
rx=on
tx=off
;;
esac
ethtool --pause $ifname autoneg $auto rx $rx tx $tx 2>/dev/null
power_updown $ifname $enabled
}

View File

@@ -5,22 +5,21 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=evoice
PKG_VERSION:=0.2.39
PKG_VERSION:=0.2.1
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:=30d65330de0368f73ecf4a2e804c39a2ee280454
PKG_SOURCE_VERSION:=f2477946f9e142d01820b38e32ce98a781e0310e
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE:=PROPRIETARY
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
@@ -32,10 +31,7 @@ define Package/$(PKG_NAME)
SUBMENU:=Telephony
TITLE:=Ensemble Voice
URL:=
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
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp +TARGET_iopsys_brcm63xx_arm:bcmkernel +TARGET_iopsys_econet:kmod-voip_driver
endef
define Package/$(PKG_NAME)/description
@@ -44,60 +40,33 @@ endef
ifeq ($(LOCAL_DEV),1)
# If you want to build the code from your own local repositiory enable
# LOCAL_DEV and set LOCAL_DEV_EVOICE_DIR to your own git repository.
# LOCAL_DEV and change the path below to your own git repository.
define Build/Prepare
@echo "======================================================="
@echo "DEVELOPMENT BUILD! rsync $(LOCAL_DEV_EVOICE_DIR) to $(PKG_BUILD_DIR)"
@echo "======================================================="
rsync -a $(LOCAL_DEV_EVOICE_DIR)/* $(PKG_BUILD_DIR)/
rsync -av /swdev/bide/evoice_clean/* $(PKG_BUILD_DIR)/
endef
endif
IDIR = $(STAGING_DIR)/usr/include
TONES_INI_REQUIRED=
ifeq ($(CONFIG_TARGET_brcmbca),y)
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
TARGET_PLATFORM=BROADCOM
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)
export IDIR = $(STAGING_DIR)/usr/include
export BDIR = bcm963xx/userspace/private/apps/voice
export _XFLAGS = -I$(IDIR) -I$(IDIR)/$(BDIR)/inc -I$(IDIR)/bcm963xx/xchg/bos/publicInc -I$(IDIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
else ifeq ($(CONFIG_TARGET_iopsys_econet),y)
TARGET_PLATFORM=ECONET
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) $(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
+$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=SVrgBcmFxs LIF=cerder DBG=dbg
+$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=libvoiceservice LIF=cerder DBG=dbg
endef
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,7 +22,6 @@ 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'
@@ -34,45 +33,57 @@ 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 'G.711ALaw'
option Codec 'Codec1'
option PacketizationPeriod '20'
option SilenceSupression '1'
config CodecProfile '1CodecProfile2'
option Enable '1'
option Codec 'G.711MuLaw'
option Codec 'Codec2'
option PacketizationPeriod '20'
option SilenceSupression '1'
config CodecProfile '1CodecProfile3'
option Enable '1'
option Codec 'G.726'
option Codec 'Codec3'
option PacketizationPeriod '20'
option SilenceSupression '0'
config CodecProfile '1CodecProfile4'
option Enable '1'
option Codec 'G.722'
option Codec 'Codec4'
option PacketizationPeriod '20'
option SilenceSupression '0'
config CodecProfile '1CodecProfile5'
option Enable '1'
option Codec 'G.729'
option Codec 'Codec5'
option PacketizationPeriod '20'
option SilenceSupression '0'
@@ -138,7 +149,7 @@ config IncomingMap 'IncomingMap2'
option Line 'Line2'
config IncomingMap 'IncomingMap3'
option Enable '0'
option Enable '1'
option Extension 'Extension2'
option Line 'Line1'
@@ -211,15 +222,15 @@ config NumberingPlan 'NumberingPlan2'
option InterDigitTimerStd '2000'
option InterDigitTimerOpen '2000'
option TerminationDigit ' '
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'
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'
config NumberingPlan 'NumberingPlan3'
option MinimumNumberOfDigits '5'
@@ -227,9 +238,9 @@ config NumberingPlan 'NumberingPlan3'
option InterDigitTimerStd '2000'
option InterDigitTimerOpen '2000'
option TerminationDigit '#'
list PrefixList '3PrefixInfo1'
list PrefixList '4PrefixInfo1'
config PrefixInfo '2PrefixInfo1'
config PrefixInfo '3PrefixInfo1'
option Enable '1'
option PrefixRange '*43#'
option PrefixMinNumberOfDigits '4'
@@ -239,7 +250,7 @@ config PrefixInfo '2PrefixInfo1'
option FacilityAction 'CW_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo2'
config PrefixInfo '3PrefixInfo2'
option Enable '1'
option PrefixRange '#43#'
option PrefixMinNumberOfDigits '4'
@@ -249,7 +260,7 @@ config PrefixInfo '2PrefixInfo2'
option FacilityAction 'CW_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo3'
config PrefixInfo '3PrefixInfo3'
option Enable '1'
option PrefixRange '*21*(X+)#'
option PrefixMinNumberOfDigits '9'
@@ -259,7 +270,7 @@ config PrefixInfo '2PrefixInfo3'
option FacilityAction 'CFU_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo4'
config PrefixInfo '3PrefixInfo4'
option Enable '1'
option PrefixRange '#21#'
option PrefixMinNumberOfDigits '4'
@@ -269,7 +280,7 @@ config PrefixInfo '2PrefixInfo4'
option FacilityAction 'CFU_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo5'
config PrefixInfo '3PrefixInfo5'
option Enable '1'
option PrefixRange '*67*(X+)#'
option PrefixMinNumberOfDigits '9'
@@ -279,7 +290,7 @@ config PrefixInfo '2PrefixInfo5'
option FacilityAction 'CFB_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo6'
config PrefixInfo '3PrefixInfo6'
option Enable '1'
option PrefixRange '#67#'
option PrefixMinNumberOfDigits '4'
@@ -289,7 +300,7 @@ config PrefixInfo '2PrefixInfo6'
option FacilityAction 'CFB_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo7'
config PrefixInfo '3PrefixInfo7'
option Enable '1'
option PrefixRange '*61*(X+(*X+)?)#'
option PrefixMinNumberOfDigits '15'
@@ -299,7 +310,7 @@ config PrefixInfo '2PrefixInfo7'
option FacilityAction 'CFNR_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo8'
config PrefixInfo '3PrefixInfo8'
option Enable '1'
option PrefixRange '#61#'
option PrefixMinNumberOfDigits '4'
@@ -309,7 +320,7 @@ config PrefixInfo '2PrefixInfo8'
option FacilityAction 'CFNR_DEACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '2PrefixInfo9'
config PrefixInfo '3PrefixInfo9'
option Enable '1'
option PrefixRange '*31*'
option PrefixMinNumberOfDigits '4'
@@ -319,7 +330,7 @@ config PrefixInfo '2PrefixInfo9'
option FacilityAction 'CA_ACTIVATE'
option FacilityActionArgument ' '
config PrefixInfo '3PrefixInfo1'
config PrefixInfo '4PrefixInfo1'
option Enable '1'
option PrefixRange '110|112'
option PrefixMinNumberOfDigits '7'

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -3,7 +3,6 @@ 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'
@@ -48,23 +47,16 @@ 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 Accept_From_Registered 'voice.Network@.AcceptFromProxyOnly'
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 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 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'
option Reg_Failure_Interval 'voice.Network@.TimerRegistrationFailed'
option T1 'voice.Network@.TimerT1'
option UserAgentDomain 'voice.Network@.UserAgentDomain'
config VoIPProfile 'map_voip'
option Enable 'voice.VoIPProfile@.Enable'
@@ -81,13 +73,6 @@ 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,6 +22,7 @@ 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,17 +5,10 @@ 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"
@@ -27,6 +20,3 @@ reload_service() {
start
}
service_triggers() {
procd_add_reload_trigger $VOICE_UCI_CONFIG
}

View File

@@ -1,50 +0,0 @@
{
"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

@@ -1,140 +0,0 @@
{
"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
}
]
}

File diff suppressed because one or more lines are too long

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:=e3cefda3b26c9aea3021b20725ce7b31b33eebc4
PKG_SOURCE_VERSION:=0ebaf1e7d1f09318ae75d0f475a25280742b790e
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_brcmbca):bcmkernel
DEPENDS:= +(TARGET_iopsys_brcm63xx_arm):bcmkernel
PKG_LICENSE:=GPLv2
PKG_LICENSE_URL:=
endef
@@ -42,27 +42,15 @@ EXTRA_KCONFIG:= CONFIG_RGB_LED=m
MODULE_INCLUDE=-I$(PKG_BUILD_DIR)
ifeq ($(CONFIG_TARGET_brcmbca),y)
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
LINUX_DIR:=$(BUILD_DIR)/bcmkernel/bcm963xx/kernel/linux-4.19
# 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)))
MODULES_SUBDIR:=lib/modules/4.19.183
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"

14
icwmp/Config_cwmp.in Normal file
View File

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

View File

@@ -1,35 +1,55 @@
#
# Copyright (C) 2020-2022 IOPSYS Software Solutions AB
#
# This is free software, licensed under the BSD-3-Clause
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=9.1.6
PKG_VERSION:=8.4.25
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_VERSION:=79284d1f4e16cf6077a7394f0c04a894b83a8a41
PKG_SOURCE_VERSION:=cbfff1b644efceca0b5c72d062535bc766ca1e54
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE:=GPLv2
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 +libuuid
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
endef
define Package/icwmp-openssl
@@ -57,15 +77,25 @@ define Package/icwmp-mbedtls
endef
ifeq ($(BUILD_VARIANT),openssl)
CMAKE_OPTIONS += -DWITH_OPENSSL=ON
CONFIGURE_ARGS += --enable-libopenssl
endif
ifeq ($(BUILD_VARIANT),wolfssl)
CMAKE_OPTIONS += -DWITH_WOLFSSL=ON
CONFIGURE_ARGS += --enable-libwolfssl
endif
ifeq ($(BUILD_VARIANT),mbedtls)
CMAKE_OPTIONS += -DWITH_MBEDTLS=ON
CONFIGURE_ARGS += --enable-libmbedtls
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
USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1)
@@ -83,7 +113,6 @@ define Package/icwmp/default/install
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
$(INSTALL_DIR) $(1)/etc/bbfdm/json/
$(INSTALL_DIR) $(1)/etc/udhcpc.user.d
$(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
@@ -93,14 +122,13 @@ define Package/icwmp/default/install
$(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/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/etc/udhcpc.user.d/udhcpc_icwmp_opt125.user $(1)/etc/udhcpc.user.d/udhcpc_icwmp_opt125.user
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user $(1)/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user
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

@@ -17,7 +17,6 @@ config acs 'acs'
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)
@@ -32,7 +31,7 @@ config cpe 'cpe'
option amd_version '5'
# compression possible configs: InstanceNumber, InstanceAlias
option instance_mode 'InstanceNumber'
option session_timeout '300'
option session_timeout '60'
option notification '1'
option exec_download '0'
option periodic_notify_enable '1'

View File

@@ -14,18 +14,15 @@ handle_icwmp_update() {
return 0
fi
ret=$(ubus call service list '{"name":"icwmpd"}' | jsonfilter -qe '@.icwmpd.instances.icwmp.running')
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
status="$(ubus call tr069 status |jsonfilter -qe '@.last_session.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 or tr069 object not found
if [ "$?" -eq 7 ] || [ "$?" -eq 4 ]; then
log "Restarting icwmp tr069 object"
/etc/init.d/icwmpd restart
fi
else
log "Restarting icwmp tr069 object"
/etc/init.d/icwmpd restart
fi
}

View File

@@ -71,216 +71,6 @@ enable_dhcp_option43() {
fi
}
convert_to_hex() {
local val=""
local optval="${1}"
OPTIND=1
while getopts ":" opt "-$optval"
do
temp=$(printf "%02X" "'${OPTARG:-:}")
val="${val}:${temp}"
done
echo "${val}"
}
configure_send_op125() {
local sendopt="${1}"
local intf="${2}"
local uci="${3}"
local hex_oui=""
local hex_serial=""
local hex_class=""
local oui_len=0
local serial_len=0
local class_len=0
if [ "${uci}" = "network" ]; then
local opt125="125:00:00:0D:E9"
else
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
}
set_vendor_id() {
local wan="${1}"
local proto="$(uci -q get network.$wan.proto)"
if [ "${proto}" == "dhcp" ]; then
uci -q set network.$wan.vendorid="dslforum.org"
ubus call uci commit '{"config":"network"}'
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
@@ -300,9 +90,8 @@ copy_cwmp_etc_files_to_varstate() {
if [ -f /etc/icwmpd/cwmp ]; then
uci -q -c /etc/icwmpd delete cwmp.acs
uci -q -c /etc/icwmpd delete cwmp.gatewayinfo
uci -q -c /etc/icwmpd commit cwmp
cat /etc/icwmpd/cwmp >> /var/state/cwmp
cp -f /etc/icwmpd/cwmp /var/state/cwmp
fi
if [ -f /etc/icwmpd/icwmpd_backup_session.xml ]; then
@@ -324,8 +113,6 @@ 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
@@ -386,13 +173,10 @@ validate_defaults() {
return 1;
}
ssl_capath="${ssl_capath%/}"
# Put the cert pem file in keep list
if [ -d "${ssl_capath}" ]; then
if ! grep "*.pem\|*.crt" /lib/upgrade/keep.d/icwmp; then
if ! grep "${ssl_capath}" /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
@@ -405,33 +189,15 @@ validate_defaults() {
}
boot() {
local enable_cwmp="0"
local dhcp_discovery="0"
config_load cwmp
config_get_bool enable_cwmp cpe enable 1
if [ "$enable_cwmp" = "0" ]; then
return 0
fi
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
config_get wan_interface cpe default_wan_interface "wan"
enable_dhcp_option43 "${wan_interface}"
# Set dhcp option 60
set_vendor_id "${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
@@ -440,9 +206,6 @@ boot() {
regenerate_ssl_link "${ssl_capath}"
fi
# Copy backup data so that if it restart latter on, it gets the info
copy_cwmp_etc_files_to_varstate
start
}
@@ -465,6 +228,9 @@ start_service() {
return 1;
}
# Copy backup data so that if it restart latter on it gets the info
copy_cwmp_etc_files_to_varstate
procd_open_instance icwmp
procd_set_param command "$PROG"
procd_append_param command -b
@@ -481,39 +247,21 @@ service_stopped()
copy_cwmp_varstate_files_to_etc
}
stop_service()
{
copy_cwmp_varstate_files_to_etc
}
reload_service() {
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="$?"
status="$(ubus -t 1 call tr069 status |jsonfilter -qe '@.cwmp.status')"
if [ "$status" = "up" ]; then
ubus -t 1 call tr069 command '{"command":"reload"}'
ret="$?"
fi
if [ "$status" = "init" ] || [ "$ret" -ne "0" ]; then
if [ "$status" = "init" ] || [ "$?" -ne "0" ]; then
log "Restarting CWMP client"
stop
start

View File

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

View File

@@ -1,6 +1,6 @@
if (PACKAGE_ieee1905)
menu "Configuration"
menu "Configurations"
config IEEE1905_EXTENSION_ALLOWED
bool "Allow plugins to extend 1905 CMDUs and/or TLVs"
@@ -10,18 +10,5 @@ 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

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

@@ -1,16 +1,16 @@
#
# Copyright (C) 2021 IOPSYS
# Copyright (C) 2021-2022 IOPSYS
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905
PKG_VERSION:=7.0.2
PKG_VERSION:=4.10.3
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=47c04c502edf441fef9f14307be5f07541614049
PKG_SOURCE_VERSION:=3781ec6784f4186a6b7e93c83dcccbbf63ebe465
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,21 +35,31 @@ define Package/ieee1905/config
endef
define Package/libieee1905
$(call Package/ieee1905/Default)
TITLE:=libieee1905.so (library for CMDU and TLV handling)
$(call Package/ieee1905/Default,$(1))
TITLE+= (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)
TITLE:=ieee1905d (daemon implementing 1905.1 and provides cli)
$(call Package/ieee1905/Default,$(1))
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
include $(wildcard plugins/*.mk)
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
define Package/ieee1905/description
This package provides IEEE Std 1905.1 stack.
@@ -59,15 +69,6 @@ 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 \
@@ -77,20 +78,10 @@ ifeq ($(CONFIG_IEEE1905_PLATFORM_HAS_WIFI),y)
TARGET_CFLAGS += -DHAS_WIFI
endif
ifeq ($(CONFIG_IEEE1905_CMDU_SA_IS_ALMAC),y)
TARGET_CFLAGS += -DCMDU_SA_IS_ALMAC
ifeq ($(CONFIG_MULTIAP_DYNAMIC_CNTLR_SYNC_CONFIG),y)
TARGET_CFLAGS += -DDYNAMIC_CNTLR_SYNC_CONFIG
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
@@ -109,6 +100,25 @@ 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
@@ -126,7 +136,7 @@ endef
define Build/InstallDev
$(call Build/InstallDev/libieee1905,$(1),$(2))
$(foreach p,$(ppkg),$(call Build/InstallDev/$(p),$(1),$(2)))
$(call Build/InstallDev/map-plugin,$(1),$(2))
endef
ifeq ($(LOCAL_DEV),1)
@@ -137,4 +147,4 @@ endif
$(eval $(call BuildPackage,ieee1905))
$(eval $(call BuildPackage,libieee1905))
$(eval $(foreach p,$(ppkg),$(call BuildPackage,$(p))))
$(eval $(call BuildPackage,map-plugin))

View File

@@ -2,7 +2,7 @@ config ieee1905 'ieee1905'
option enabled '1'
option extension '1'
list extmodule 'map'
option registrar '2 5 6'
option registrar '2 5'
# option macaddress '0a:1b:2c:3d:4e:50'
config al-iface
@@ -24,9 +24,3 @@ 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,10 +42,9 @@ validate_ap_section() {
local section="$1"
uci_validate_section ieee1905 $section "${1}" \
'band:or("2", "5", "60", "6")' \
'band:or("2", "5", "60")' \
'ssid:string' \
'encryption:or("psk2", "sae-mixed", "sae",
"psk", "psk-mixed", "none", string)' \
'encryption:or("psk2", "sae-mixed", "sae", string)' \
'key:string' \
'uuid:string' \
'manufacturer:string' \
@@ -83,10 +82,8 @@ start_service() {
validate_ieee1905_config || return 1;
procd_open_instance
procd_set_param command "/usr/sbin/ieee1905d" "-o" "/tmp/ieee1905.log" "-f"
procd_set_param command "/usr/sbin/ieee1905d"
procd_set_param respawn
procd_set_param limits core="unlimited"
# procd_set_param env IEEE1905_LOG_CMDU=1
# procd_set_param stdout 1
# procd_set_param stderr 1
procd_close_instance

View File

@@ -1,18 +0,0 @@
#!/bin/sh
. /lib/functions.sh
config_load ieee1905
ifname_to_list() {
local section=$1
config_get ifname $section ifname # get list or option as space separated values
ifname=${ifname//,/\ } # convert csv with space separation
uci del ieee1905.${section}.ifname # delete entry
for i in ${ifname}; do
uci add_list ieee1905.${section}.ifname="$i" # writeback entry as list
done
}
config_foreach ifname_to_list al-iface

View File

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

View File

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

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

@@ -18,21 +18,8 @@ CONFIG_TARGET_ROOTFS_TARGZ=y
# /etc/banner and /etc/device_info #
CONFIG_IMAGEOPT=y
CONFIG_VERSIONOPT=y
CONFIG_VERSION_MANUFACTURER="IOPSYS"
CONFIG_VERSION_MANUFACTURER="iopsysWrt"
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
@@ -56,14 +43,13 @@ CONFIG_LOCALMIRROR="https://download.iopsys.eu/iopsys/mirror/"
# EasySoC HAL #
CONFIG_PACKAGE_inbd=y
CONFIG_PACKAGE_qosmngr=y
CONFIG_PACKAGE_libwifiutils=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
@@ -76,7 +62,6 @@ CONFIG_PACKAGE_urlfilter=y
CONFIG_PACKAGE_imonitor=m
CONFIG_PACKAGE_questd=y
CONFIG_PACKAGE_rulengd=y
CONFIG_PACKAGE_usermngr=y
# TR-x69 #
CONFIG_PACKAGE_uspd-mbedtls=y
@@ -130,8 +115,7 @@ CONFIG_PACKAGE_xl2tpd=y
CONFIG_PACKAGE_atftp=m
CONFIG_PACKAGE_atftpd=m
CONFIG_PACKAGE_ddns-scripts=y
CONFIG_PACKAGE_dnsmasq=y
CONFIG_PACKAGE_miniupnpd-iptables=y
CONFIG_PACKAGE_miniupnpd=y
CONFIG_PACKAGE_mosquitto-client-ssl=y
CONFIG_PACKAGE_mosquitto-ssl=y
CONFIG_PACKAGE_nginx=y
@@ -153,8 +137,7 @@ CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_ip6tables-zz-legacy=y
CONFIG_PACKAGE_iptables-zz-legacy=y
CONFIG_PACKAGE_iptables=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
@@ -179,7 +162,6 @@ 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
@@ -303,10 +285,3 @@ 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,65 +2,57 @@
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
cp .config .genconfig_config_bak
git remote -v | grep -qE '(git@|ssh://)' && developer=1
#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
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
./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
# 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
# install all packages
./scripts/feeds install -a
# install all packages
./scripts/feeds install -a
# remove broken symlinks ( for packages that are no longer in the feed )
find -L package/feeds -maxdepth 2 -type l -delete
# remove broken symlinks ( for packages that are no longer in the feed )
find -L package/feeds -maxdepth 2 -type l -delete
cp .genconfig_config_bak .config
make defconfig
cp .genconfig_config_bak .config
make defconfig
# record when we last run this script
touch tmp/.iop_bootstrap
# record when we last run this script
touch tmp/.iop_bootstrap
# always return true
exit 0
# always return true
exit 0
}
register_command "feeds_update" "Update feeds to point to commit hashes from feeds.conf"

View File

@@ -13,13 +13,11 @@ function genconfig {
export DEVELOPER=0
target="bogus"
target_config_path=""
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"
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"
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
@@ -85,8 +83,8 @@ function genconfig {
[ -n "$profile" ] || return
if [ -n "$TARGET" -a -d "./target/linux/feeds/$TARGET" ]; then
local targetpath="./target/linux/feeds/$TARGET"
if [ -n "$TARGET" -a -d "./target/linux/$TARGET" ]; then
local targetpath="./target/linux/$TARGET"
local profiles=
local pfound=0
@@ -109,23 +107,19 @@ function genconfig {
return
fi
[ -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)
[ -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)
if [ "$profile" == "LIST" ]; then
for list in brcmbca iopsys_ramips airoha iopsys_x86 iopsys_armvirt iopsys_mediatek ipq95xx; do
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_econet iopsys_x86 iopsys_armvirt; do
echo "$list based boards:"
for b in ${!list}; do
echo -e "\t$b"
@@ -134,10 +128,10 @@ function genconfig {
return
fi
for p in $brcmbca; do
for p in $iopsys_brcm63xx_arm; do
if [ $p == $profile ]; then
target="brcmbca"
target_config_path="$brcmbca_feed/config"
target="iopsys_brcm63xx_arm"
target_config_path="$brcm63xx_arm/config"
return
fi
done
@@ -145,15 +139,15 @@ function genconfig {
for p in $iopsys_ramips; do
if [ $p == $profile ]; then
target="iopsys_ramips"
target_config_path="$ramips_feed/config"
target_config_path="$ramips/config"
return
fi
done
for p in $airoha; do
for p in $iopsys_econet; do
if [ $p == $profile ]; then
target="airoha"
target_config_path="$airoha_feed/config"
target="iopsys_econet"
target_config_path="$econet/config"
return
fi
done
@@ -161,7 +155,7 @@ function genconfig {
for p in $iopsys_x86; do
if [ $p == $profile ]; then
target="iopsys_x86"
target_config_path="$x86_feed/config"
target_config_path="$x86/config"
return
fi
done
@@ -169,23 +163,7 @@ function genconfig {
for p in $iopsys_armvirt; do
if [ $p == $profile ]; then
target="iopsys_armvirt"
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"
target_config_path="$armvirt/config"
return
fi
done
@@ -276,22 +254,11 @@ function genconfig {
setup_dirs()
{
git remote -v | grep -q http || {
CUSTBRANCH="$(git rev-parse --abbrev-ref HEAD)"
if git ls-remote $CUSTREPO -q 2>/dev/null; then
if [ ! -d "$CUSTPATH" ]; then
echo "Cloning $CUSTBRANCH branch of $CUSTREPO"
git clone -b "$CUSTBRANCH" "$CUSTREPO" "$CUSTPATH" 2>/dev/null || {
DEFBRANCH="$(git remote show $CUSTREPO | grep 'HEAD branch' | cut -d' ' -f5)"
echo "$CUSTBRANCH branch is not found, cloning $DEFBRANCH branch of $CUSTREPO"
git clone "$CUSTREPO" "$CUSTPATH"
}
git clone "$CUSTREPO" "$CUSTPATH"
elif [ $IMPORT -eq 1 ]; then
cd $CUSTPATH
echo "Checking out $CUSTBRANCH branch in $CUSTPATH"
git checkout "$CUSTBRANCH" 2>/dev/null || {
DEFBRANCH="$(git symbolic-ref refs/remotes/origin/HEAD | cut -d '/' -f4)"
echo "Checking out $CUSTBRANCH branch has failed, using $DEFBRANCH branch in $CUSTPATH"
}
v "git pull"
git pull
cd - >/dev/null #go back
@@ -351,26 +318,20 @@ function genconfig {
echo "" >> .config
fi
# Special handling for targets which use TARGET_DEVICES
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}")"
# Special handling for targets which use TARGET_DEVICES
if [ "$target" = "iopsys_ramips" ]; then
subtarget="mt7621"
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
;;
esac
fi
echo "$CUSTOMERS $BOARDTYPE" > $CURRENT_CONFIG_FILE
@@ -399,15 +360,12 @@ function genconfig {
fi
# Set target version
local git_version
if ! git_version="$(git describe --always --dirty --tags --match '[0-9].*.*' --match '[0-9][0-9].*.*')"; then
echo "ERROR: Failed getting version via git describe, exiting." >&2
return 1
fi
local version="${git_version,,}${CUSTOMERS:+-${CUSTOMERS// /}}"
local version_lower="${version,,}"
echo "CONFIG_TARGET_VERSION=\"${version_lower}\"" >> .config
echo "CONFIG_VERSION_CODE=\"${version_lower}\"" >> .config
local GIT_TAG=$(git describe --abbrev=0 --tags)
local GIT_REV=$(git rev-parse --short HEAD)
local GIT_VER="$GIT_TAG"
git describe --contains $GIT_REV >/dev/null 2>&1 || GIT_VER="${GIT_TAG}_${GIT_REV}"
echo "CONFIG_TARGET_VERSION=\"${GIT_VER}\"" >> .config
echo "CONFIG_VERSION_CODE=\"${GIT_VER}\"" >> .config
echo "CONFIG_VERSION_PRODUCT=\"$BOARDTYPE"\" >> .config
# Enable Package source tree override if selected

View File

@@ -12,13 +12,11 @@ function genconfig_min {
export DEVELOPER=0
target="bogus"
target_config_path=""
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"
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"
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
@@ -84,8 +82,8 @@ function genconfig_min {
[ -n "$profile" ] || return
if [ -n "$TARGET" -a -d "./target/linux/feeds/$TARGET" ]; then
local targetpath="./target/linux/feeds/$TARGET"
if [ -n "$TARGET" -a -d "./target/linux/$TARGET" ]; then
local targetpath="./target/linux/$TARGET"
local profiles=
local pfound=0
@@ -108,23 +106,19 @@ function genconfig_min {
return
fi
[ -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)
[ -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)
if [ "$profile" == "LIST" ]; then
for list in brcmbca iopsys_ramips airoha iopsys_x86 iopsys_armvirt iopsys_mediatek ipq95xx; do
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_econet iopsys_x86 iopsys_armvirt; do
echo "$list based boards:"
for b in ${!list}; do
echo -e "\t$b"
@@ -133,10 +127,10 @@ function genconfig_min {
return
fi
for p in $brcmbca; do
for p in $iopsys_brcm63xx_arm; do
if [ $p == $profile ]; then
target="brcmbca"
target_config_path="$brcmbca_feed/config"
target="iopsys_brcm63xx_arm"
target_config_path="$brcm63xx_arm/config"
return
fi
done
@@ -144,15 +138,15 @@ function genconfig_min {
for p in $iopsys_ramips; do
if [ $p == $profile ]; then
target="iopsys_ramips"
target_config_path="$ramips_feed/config"
target_config_path="$ramips/config"
return
fi
done
for p in $airoha; do
for p in $iopsys_econet; do
if [ $p == $profile ]; then
target="airoha"
target_config_path="$airoha_feed/config"
target="iopsys_econet"
target_config_path="$econet/config"
return
fi
done
@@ -160,7 +154,7 @@ function genconfig_min {
for p in $iopsys_x86; do
if [ $p == $profile ]; then
target="iopsys_x86"
target_config_path="$x86_feed/config"
target_config_path="$x86/config"
return
fi
done
@@ -168,23 +162,7 @@ function genconfig_min {
for p in $iopsys_armvirt; do
if [ $p == $profile ]; then
target="iopsys_armvirt"
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"
target_config_path="$armvirt/config"
return
fi
done
@@ -192,6 +170,12 @@ function genconfig_min {
git remote -v | grep -qE '(git@|ssh://)' && {
DEVELOPER=1
bcmAllowed=0
endptAllowed=0
git ls-remote git@dev.iopsys.eu:broadcom/bcmcreator.git -q 2>/dev/null && bcmAllowed=1
git ls-remote git@dev.iopsys.eu:iopsys/endptmngr.git -q 2>/dev/null && endptAllowed=1
}
v() {
@@ -326,25 +310,19 @@ function genconfig_min {
fi
# Special handling for targets which use TARGET_DEVICES
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}")"
if [ "$target" = "iopsys_ramips" ]; then
subtarget="mt7621"
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
;;
esac
fi
echo "$CUSTOMERS $BOARDTYPE" > $CURRENT_CONFIG_FILE
@@ -373,15 +351,12 @@ function genconfig_min {
fi
# Set target version
local git_version
if ! git_version="$(git describe --always --dirty --tags --match '[0-9].*.*' --match '[0-9][0-9].*.*')"; then
echo "ERROR: Failed getting version via git describe, exiting." >&2
return 1
fi
local version="${git_version,,}${CUSTOMERS:+-${CUSTOMERS// /}}"
local version_lower="${version,,}"
echo "CONFIG_TARGET_VERSION=\"${version_lower}\"" >> .config
echo "CONFIG_VERSION_CODE=\"${version_lower}\"" >> .config
local GIT_TAG=$(git describe --abbrev=0 --tags)
local GIT_REV=$(git rev-parse --short HEAD)
local GIT_VER="$GIT_TAG"
git describe --contains $GIT_REV >/dev/null 2>&1 || GIT_VER="${GIT_TAG}_${GIT_REV}"
echo "CONFIG_TARGET_VERSION=\"${GIT_VER}\"" >> .config
echo "CONFIG_VERSION_CODE=\"${GIT_VER}\"" >> .config
echo "CONFIG_VERSION_PRODUCT=\"$BOARDTYPE"\" >> .config
# Enable Package source tree override if selected

View File

@@ -48,10 +48,7 @@ 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 \
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
root@$host \
"echo '$keys' >> '$DROPBEAR_AUTHORIZED_KEYS_FILE'" && echo ok
ssh root@$host "echo '$keys' >> '$DROPBEAR_AUTHORIZED_KEYS_FILE'" && echo ok
}
register_command "ssh_install_key" "Install the users public ssh key on host running dropbear"

View File

@@ -1,283 +1,344 @@
# this is a developer helper script to install firmware on a remote host with SSH
function upd_usage {
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"
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"
}
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" "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 "-----------------------------------------"
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 -n "Continue? [Y/n/q]:"
read answer
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
case $answer in
n | N)
return 1
;;
q | Q)
exit 1
;;
y | Y | *)
return 0
;;
esac
echo -n "Continue? [Y/n/q]:"
read answer
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
new_file=$(cat $tempfile)
if [ -n "$new_file" ]; then
upd_fw="$new_file"
upd_fw_base=$(basename $upd_fw)
fi
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
}
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
new_file=$(cat $tempfile)
if [ -n "$new_file" ]; then
upd_host="$new_file"
fi
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
}
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
res=$(cat $tempfile)
case $res in
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
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 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
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
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 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
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
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" "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
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
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
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
}
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
case $(cat $tempfile) in
"Firmware file")
upd_select_file
;;
"Host IP")
upd_select_target
;;
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
;;
"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
;;
upd_select_forceimage
;;
"sysupgrade")
upd_select_sysupgrade
;;
*)
return
;;
esac
upd_select
return
;;
esac
upd_select
}
function upd_select_start {
lines=$(tput lines)
cols=$(tput cols)
tempfile="$(mktemp)"
trap "rm -f $tempfile" 0 1 2 5 15
upd_select
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
}
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"
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"
upd_sysupgrade=1
do_dialog=0
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
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
upd_fw_base="$(basename "$upd_fw")"
[ $do_dialog -eq 1 ] && upd_select_start
if ! upd_ask_ok; then
upd_select_start
if ! upd_ask_ok; then
exit 1
fi
fi
if [ ! -f $upd_fw ]; then
echo "Firmware file $firmware does not exist."
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
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"
for upd_fw_base in $firmwares
do
#echo "firmware $upd_fw"
break
done
upd_fw="bin/targets/$CONFIG_TARGET_BOARD/generic/$upd_fw_base"
fi
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
[ $do_dialog -eq 1 ] && upd_select_start
if ! upd_ask_ok
then
upd_select_start
if ! upd_ask_ok
then
exit 1
fi
fi
if [ ! -f $upd_fw ]
then
echo "firmware file $firmware do not exist"
exit 1
fi
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"
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
}
register_command "ssh_upgrade" "-t <host> -f <file> [opts] Install firmware on remote host with SSH"
register_command "ssh_upgrade" "-h <host> -f <file> [opts] Install firmware on remote host with SSH"

View File

@@ -1,61 +0,0 @@
#
# Copyright (C) 2022 IOPSYS Software Solutions AB
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libvoice-broadcom
PKG_VERSION:=0.1
PKG_LICENSE:=PROPRIETARY
PKG_LICENSE_FILES:=LICENSE
LOCAL_SRC_DIR:=~/git/voip/$(PKG_NAME)
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/$(PKG_NAME).git
PKG_SOURCE_VERSION:=d066c9d5c14757ab38e9ecb265ba24f5b33cdbce
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
# 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
LIBVOICE_PKG_BUILD_DIR := $(PKG_BUILD_DIR)
export CONFIG_BRCM_SDK_VER_504040
export CONFIG_BCM_CHIP_ID
include $(INCLUDE_DIR)/package.mk
TARGET_CFLAGS += -Wall -Werror
define Package/$(PKG_NAME)
CATEGORY:=Utilities
TITLE:=IOPSYS libvoice for Broadcom
URL:=
DEPENDS:=
endef
define Package/$(PKG_NAME)/description
Libvoice is a library that provides a uniform set of APIs and data types with hardware abstract layer for DSP/SLIC from different vendors
endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
rsync -av --exclude=.* $(LOCAL_SRC_DIR)/* $(PKG_BUILD_DIR)/
endef
endif
define Package/$(PKG_NAME)/install
# Although there is nothing needs to be installed, but the install section must NOT be empty. Otherwise the package will be skipped as below.
# WARNING: skipping libvoice-broadcom -- package has no install section
$(INSTALL_DIR) $(1)/usr/lib
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -1,58 +0,0 @@
#
# Copyright (C) 2022 IOPSYS Software Solutions AB
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libvoice-d2
PKG_VERSION:=0.1
PKG_LICENSE:=PROPRIETARY
PKG_LICENSE_FILES:=LICENSE
LOCAL_SRC_DIR:=~/git/voip/$(PKG_NAME)
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/$(PKG_NAME).git
PKG_SOURCE_VERSION:=45e7d35f97f258f5e13c3afa0542db724bf59828
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
# 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
LIBVOICE_PKG_BUILD_DIR := $(PKG_BUILD_DIR)
include $(INCLUDE_DIR)/package.mk
TARGET_CFLAGS += -Wall -Werror
define Package/$(PKG_NAME)
CATEGORY:=Utilities
TITLE:=IOPSYS libvoice for D2 which is software DSP
URL:=
DEPENDS:=
endef
define Package/$(PKG_NAME)/description
Libvoice is a library that provides a uniform set of APIs and data types with hardware abstract layer for DSP/SLIC from different vendors
endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
rsync -av --exclude=.* $(LOCAL_SRC_DIR)/* $(PKG_BUILD_DIR)/
endef
endif
define Package/$(PKG_NAME)/install
# Although there is nothing needs to be installed, but the install section must NOT be empty. Otherwise the package will be skipped as below.
# WARNING: skipping libvoice-d2 -- package has no install section
$(INSTALL_DIR) $(1)/usr/lib
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -13,25 +13,5 @@ config AGENT_ISLAND_PREVENTION
config AGENT_EASYMESH_R2_CERT
bool "Compile for WFA test bed"
config AGENT_EASYMESH_VERSION
int "Support Easymesh version"
default 2
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

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent
PKG_VERSION:=4.1.0.1
PKG_VERSION:=2.9.0.4
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=c708092f56110637f04d87d309dcbce8fd389b89
PKG_SOURCE_VERSION:=4f06e11fc17f6c462960cbd8a9835b5a16b53e9c
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=BSD-3-Clause
@@ -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 +ip-bridge
+map-plugin
endef
@@ -56,11 +56,8 @@ endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-Wno-error=deprecated-declarations \
-D_GNU_SOURCE
TARGET_CFLAGS += -DEASYMESH_VERSION=$(CONFIG_AGENT_EASYMESH_VERSION)
ifeq ($(CONFIG_AGENT_SYNC_DYNAMIC_CNTLR_CONFIG),y)
TARGET_CFLAGS += -DAGENT_SYNC_DYNAMIC_CNTLR_CONFIG
endif
@@ -73,12 +70,6 @@ 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
@@ -86,8 +77,6 @@ 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

@@ -7,7 +7,6 @@ config agent 'agent'
option island_prevention '0'
option eth_onboards_wifi_bhs '0'
# option controller_macaddr '0a:1b:2c:3d:4e:50'
option scan_on_boot_only '0'
config dynamic_backhaul
option missing_bh_timer '60'

View File

@@ -3,7 +3,7 @@
. /lib/network/utils.sh
conn_ports_file="/tmp/map.connected.ports"
map_bh_file="/var/run/multiap/multiap.backhaul"
map_bh_file="/tmp/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,9 +10,56 @@ 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 /var/run/multiap/multiap.backhaul
rm -f /tmp/multiap.backhaul
procd_open_instance
procd_set_param command "/usr/sbin/dynbhd"
procd_set_param respawn
@@ -34,8 +81,7 @@ validate_agent_section() {
'resend_num:uinteger:0' \
'dyn_cntlr_sync:bool:true' \
'island_prevention:bool:false' \
'eth_onboards_wifi_bhs:bool:false' \
'scan_on_boot_only:bool:false'
'eth_onboards_wifi_bhs:bool:false'
[ "$?" -ne 0 ] && {
@@ -70,7 +116,7 @@ validate_ap_section() {
uci_validate_section mapagent $section "${1}" \
'ifname:string' \
'device:string' \
'band:or("2", "5", "6")' \
'band:or("2", "5")' \
'enabled:bool:true' \
'onboarded:bool:false' \
'ssid:string' \
@@ -92,7 +138,7 @@ validate_radio_section() {
uci_validate_section mapagent $section "${1}" \
'device:string' \
'band:or("2", "5", "6")' \
'band:or("2", "5")' \
'configured:bool:false' \
'onboarded:bool:false' \
'dedicated_backhaul:bool:false' \
@@ -104,11 +150,7 @@ validate_radio_section() {
'include_sta_metric:bool:false' \
'rcpi_hysteresis_margin:range(0,255)' \
'report_util_threshold:range(0,255)' \
'encryption:or("sae", "sae+aes", "psk2",
"psk2+aes", "sae-mixed", "sae-mixed+aes",
"none", "psk-mixed", "psk-mixed+aes",
"wpa", "wpa+aes", "wpa2", "wpa2+aes",
"psk", "psk+aes")' \
'encryption:or("sae", "psk2", "sae-mixed")'
[ "$?" -ne 0 ] && {
logger -s -t "mapagent" "Validation of radio section failed"
@@ -173,10 +215,6 @@ validate_agent_config() {
return 0
}
create_dir() {
mkdir -p /var/run/multiap
}
start_service() {
[ -f /usr/sbin/dynbhd ] && start_dynbhd_service
@@ -191,8 +229,11 @@ 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
@@ -200,6 +241,10 @@ start_service() {
procd_close_instance
}
#stop_service() {
# remove_map
#}
service_triggers()
{
procd_add_reload_trigger "mapagent"

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

@@ -0,0 +1,930 @@
#!/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
local other_section="$2"
config_get band $1 band
config_get onboarded $1 onboarded "0"
[ "$4" != "$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
uci -q set mapagent.${other_section}.ssid="$ssid"
uci -q set mapagent.${other_section}.key="$key"
uci -q set mapagent.${other_section}.encryption=$encryption
uci -q set mapagent.${other_section}.bssid="$bssid"
uci commit mapagent
(mapagent_apply_wl_bsta "$3" "$ssid" "$key" $encryption "$5" "$bssid")
}
config_get band $1 band
config_get 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 $1 $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
uci -q set mapagent.$1.enabled="1"
}
config_load mapagent
config_foreach mapagent_enable_bk bsta
uci commit mapagent
bsta_scan_on_enabled
}
bsta_clear_all_bssid() {
mapagent_remove_bssid() {
uci -q set mapagent.$1.enabled="1"
uci -q del mapagent.$1.bssid
}
wireless_remove_bssid() {
config_get mode $1 mode
config_get ifname $1 ifname
[ "$mode" != "sta" ] && return
uci -q del wireless.$1.bssid
wpa_cli -i "$ifname" bssid 0 00:00:00:00:00:00 > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
config_load mapagent
config_foreach mapagent_remove_bssid bsta
uci commit mapagent
config_load wireless
config_foreach wireless_remove_bssid wifi-iface
uci commit wireless
}
# arg1 = ifname arg2 = bssid
bsta_blacklist_bssid_set() {
local ifname="$1"
shift
local bssid="$@"
wpa_cli -i "$ifname" set_network 0 bssid_ignore "$bssid" > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
bsta_blacklist_bssid_clear() {
mapagent_blacklist_by_band() {
config_get ifname $1 ifname
wpa_cli -i "$ifname" set_network 0 bssid_ignore "" > /dev/null 2>&1
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
}
config_load mapagent
config_foreach mapagent_blacklist_by_band bsta
}
bsta_disable_lower_priority() {
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
noht=$(iw $bsta info | grep "no HT")
[ -n "$noht" ] && {
logger -t multiap "no HT hit, issue reassoc $bsta"
wpa_cli -i $bsta reassoc
}
}
bsta_swap_to_link() {
bsta_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
(
flock -x 200
json_load "$(cat $MAPFILE)"
json_add_string "backhaul_device_id" "$ul_1905id"
json_add_string "backhaul_macddr" "$ul_mac"
json_dump > "$MAPFILE"
json_cleanup
) 200>/var/lock/map.backhaul.lock
}
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"
(
flock -x 200
json_dump > "$MAPFILE"
) 200>/var/lock/map.backhaul.lock
json_cleanup
config_load mapagent
ubus send map.agent '{"action":"unset", "type":"'$type'", "ifname":"'$ifname'", "macaddr":"'$hwaddr'"}'
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
(
flock -x 200
json_load "$(cat $MAPFILE)"
json_get_var bk_type type
json_cleanup
ubus send map.agent '{"action":"unset", "type":"'$type'", "bk_type":"'$bk_type'"}'
[ "$type" = "$bk_type" ] && rm -f "$MAPFILE" > /dev/null 2>&1
) 200>/var/lock/map.backhaul.lock
}
func=$1
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_clear_all_bssid) bsta_clear_all_bssid $@;;
bsta_blacklist_bssid_set) bsta_blacklist_bssid_set $@;;
bsta_blacklist_bssid_clear) bsta_blacklist_bssid_clear $@;;
bsta_disable_lower_priority) bsta_disable_lower_priority $@;;
bsta_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

@@ -0,0 +1,210 @@
#!/bin/sh
. /lib/functions.sh
AL_BRIDGE=${AL_BRIDGE-"br-lan"}
PRIMARY_VID=${PRIMARY_VID-1}
### Traffic Separation ###
dbg() {
logger -t traffic_separation $@
}
ts_sub() {
ts_usage() {
cat <<EOF
Usage: $0 [create|reload]
Traffic Separation related functions.
create vid - create vlan configuration with vlan_id
reload - reload network with new configuration
EOF
exit 1
}
ts_create() {
_net_setup() {
local name=$1
local vid=$2
local proto=$3
local dev=$4
local port_dev=$5
[ -z "$(uci -q get network.${name})" ] || return
local ip_addr="192.168.${vid}.1"
local br_dev="${AL_BRIDGE/-/_}"
local tag=":t"
[ "${vid}" = "${PRIMARY_VID}" ] && {
tag=""
# Global options
[ -z "$(uci -q get network.${br_dev}.vlan_filtering)" ] && {
uci -q set network.${br_dev}.vlan_filtering=1;
}
uci -q delete network.lan.proto
uci -q delete network.lan.ipaddr
uci -q delete network.lan.netmask
uci -q delete network.lan.ip6assign
}
uci -q set network.${name}="interface"
uci -q set network.${name}.device="$dev"
uci -q set network.${name}.is_lan="1"
if [ "$proto" = "static" ] ; then
uci -q set network.${name}.proto="static"
# TODO vid > 255
uci -q set network.${name}.ipaddr="${ip_addr}"
uci -q set network.${name}.netmask="255.255.255.0"
uci -q set network.${name}.ip6assign '60'
else
uci -q set network.${name}.proto="dhcp"
fi
uci -q add network bridge-vlan
uci -q set network.@bridge-vlan[-1].device="$AL_BRIDGE"
uci -q set network.@bridge-vlan[-1].vlan="$vid"
for port in $(uci -q get network.${br_dev}.ports) ; do
echo $port | grep -q eth || continue
uci -q add_list network.@bridge-vlan[-1].ports="${port}${tag}"
done
uci -q add_list network.${br_dev}.ports="$port_dev"
uci -q add_list network.@bridge-vlan[-1].ports="$port_dev"
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"
uci -q commit dhcp
}
_firewall_setup() {
local name=$1
local network=$1
local vid=$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
[ "${vid}" = "${PRIMARY_VID}" ] && {
uci -q delete firewall.lan
}
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"
uci -q commit firewall
}
vid=$1
[ -n "$vid" ] || {
cat <<EOF
VID required to configure.
EOF
exit 1
}
ip link show sink${vid} 2> /dev/null || {
ip link add sink${vid} type veth peer name sink_peer${vid}
}
ip link set sink${vid} up
ip link set sink_peer${vid} up
proto="dhcp"
[ -x "/usr/sbin/mapcontroller" ] && proto="static" ;
_net_setup "vlan${vid}" ${vid} ${proto} "sink${vid}" "sink_peer${vid}"
[ -x "/usr/sbin/mapcontroller" ] && {
_dhcp_setup vlan${vid}
_firewall_setup vlan${vid} ${vid}
}
}
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
ubus call uci commit '{"config":"network"}'
/etc/init.d/firewall reload
#for sink in $(ubus list network.interface.sink*) ; do
# local sink_vlan=${sink/network.interface./}_vlan
#done
}
local func=$1
shift
case "$func" in
create) dbg "create $@"; ts_create $@;;
reload) dbg "reload $@"; ts_reload $@;;
--help|help) ts_usage;;
*) ts_usage; exit 1;;
esac
}

View File

@@ -6,25 +6,5 @@ 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_VERSION
int "Support Easymesh version"
default 2
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

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-controller
PKG_VERSION:=4.1.0.2
PKG_VERSION:=2.8.0.5
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=8b7bb003611247309b072350d7986e304b0d228b
PKG_SOURCE_VERSION:=da283946e96e2d8b982b0b0518fa84102f0ef4df
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
@@ -26,7 +26,7 @@ define Package/map-controller
SECTION:=utils
CATEGORY:=Utilities
TITLE:=WiFi Multi-AP Controller (EasyMesh R2)
DEPENDS:=+libuci +libubox +ubus +libeasy +libwifiutils +libieee1905 +ieee1905 +map-plugin
DEPENDS:=+libuci +libubox +ubus +libeasy +libieee1905 +ieee1905 +map-plugin
endef
define Package/map-controller/description
@@ -38,31 +38,21 @@ 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
MAKE_PATH:=src
TARGET_CFLAGS += -DEASYMESH_VERSION=$(CONFIG_CONTROLLER_EASYMESH_VERSION)
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,22 +2,14 @@ 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 bandsteer '0'
option diffsnr '8'
option primary_vid '0'
option primary_pcp '0'
option allow_bgdfs '0'
option channel_plan '0'
config ap
option band '2'
@@ -68,8 +60,8 @@ config ap
# option report_sta_assocfails_rate '0'
# option report_metric_periodic '0'
# option report_scan '0'
# list steer_exclude 'e0:d4:e8:79:c4:ee'
# list steer_exclude_btm 'e0:d4:e8:79:c4:11'
# option steer_exclude '0'
# option steer_exclude_btm '0'
# option steer_disallow '0'
# option coordinated_cac '0'
# option traffic_separation '0'
@@ -115,8 +107,8 @@ config ap
# option report_sta_assocfails_rate '0'
# option report_metric_periodic '0'
# option report_scan '0'
# list steer_exclude 'e0:d4:e8:79:c4:ee'
# list steer_exclude_btm 'e0:d4:e8:79:c4:11'
# option steer_exclude '0'
# option steer_exclude_btm '0'
# option steer_disallow '0'
# option coordinated_cac '0'
# option traffic_separation '0'

View File

@@ -19,42 +19,16 @@ 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' \
'bandsteer:bool:false' \
'diffsnr:range(0,100)' \
'rcpi_threshold_2g:range(0,220)' \
'rcpi_threshold_5g:range(0,220)' \
'rcpi_threshold_6g:range(0,220)' \
'report_rcpi_threshold_2g:range(0,220)' \
'report_rcpi_threshold_5g:range(0,220)' \
'report_rcpi_threshold_6g:range(0,220)'
'allow_bgdfs:range(0,2629744)' \
'channel_plan:range(0,2629744)'
[ "$?" -ne 0 ] && {
logger -s -t "mapcontroller" "Validation of sta_steering section failed"
logger -s -t "mapcontroller" "Validation of controller section failed"
IS_CFG_VALID=0
return 1
}
@@ -65,13 +39,10 @@ validate_ap_section() {
local section="$1"
uci_validate_section mapcontroller $section "${1}" \
'band:or("2", "5", "6")' \
'band:or("2", "5")' \
'ssid:string' \
'encryption:or("sae", "sae+aes", "psk2",
"psk2+aes", "sae-mixed", "sae-mixed+aes",
"none", "psk-mixed", "psk-mixed+aes",
"wpa", "wpa+aes", "wpa2", "wpa2+aes",
"psk", "psk+aes")' \
"psk2+aes", "sae-mixed", "sae-mixed+aes")' \
'key:string' \
'vid:range(1,65535):1' \
'type:or("backhaul", "fronthaul", "combined")' \
@@ -121,7 +92,7 @@ validate_radio_section() {
uci_validate_section mapcontroller $section "${1}" \
'agent_id:macaddr' \
'macaddr:macaddr' \
'band:or("2", "5", "6")' \
'band:or("2", "5")' \
'steer_policy:range(0,2)' \
'util_threshold:range(0,255)' \
'rcpi_threshold:range(0,255)' \
@@ -144,7 +115,6 @@ 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
@@ -199,7 +169,7 @@ reload_service() {
return
fi
pidof "/usr/sbin/mapcontroller" > /dev/null
pidof "mapcontroller" > /dev/null
if [[ $? -ne 0 ]] ; then
start
return

View File

@@ -1,22 +0,0 @@
if (PACKAGE_map-topology)
menu "Configurations"
config TOPOLOGYD_EASYMESH_VENDOR_EXT
bool "Enable extra features through Easymesh vendor extension"
default y
config TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI_DEFAULT
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

@@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology
PKG_VERSION:=2.5.1.15
PKG_VERSION:=2.5.0.7
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=14ff07452aec4ff6f2268ef7bea9ff417252b7be
PKG_SOURCE_VERSION:=601f5fdc8b4051811593efa714954d4cb3d7b7dd
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
@@ -31,12 +31,7 @@ define Package/map-topology
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 \
@@ -48,11 +43,6 @@ 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,4 +2,3 @@
config global 'global'
option ageing_timer '1440'
option reboot_persistent '0'
list ifname 'br-lan'

View File

@@ -4,4 +4,3 @@ config topology 'topology'
option depth '8'
option interval '60'
option maxlog '32'
option profile '2'

View File

@@ -1,126 +0,0 @@
#!/bin/sh
. /lib/functions.sh
day=""
IP_RULE=""
process_ac_schedule() {
local acs_id="$1"
local is_enabled
local access_control
local start_time=""
local stop_time=""
local mac=""
handle_day_list() {
local value=$1
val=$(echo $value | cut -c 1-3)
if [ -z $day ]; then
day="$val"
else
day="$day,$val"
fi
}
config_list_foreach "$acs_id" "day" handle_day_list
config_get is_enabled "$acs_id" "enable" 1
config_get access_control "$acs_id" "dm_parent"
if [ "$is_enabled" == "0" ] || [ -z "$access_control" ]; then
return
fi
IP_RULE=""
mac=$(uci -q get hosts.$access_control.macaddr)
access_policy=$(uci -q get hosts.$access_control.access_policy)
config_get start_time "$acs_id" "start_time"
config_get duration "$acs_id" "duration"
if [ -z "$mac" ] && [ -z "$start_time" ] && [ -z "$duration" ] && [ -z "$day" ] && [ -z "$access_policy" ]; then
return
fi
if [ -n "$mac" ]; then
IP_RULE="$IP_RULE -m mac --mac-source $mac"
fi
# as per iptables manual default starttime is 00:00
# default stoptime is 23:59
if [ -z "$start_time" ]; then
start_time="0:0"
fi
if [ -n "$duration" ]; then
hh=$(echo $start_time | awk -F: '{ print $1 }')
mm=$(echo $start_time | awk -F: '{ print $2 }')
hh_s=`expr $hh \* 3600`
mm_s=`expr $mm \* 60`
ss=$(( hh_s + mm_s ))
stop_ss=$(( ss + duration ))
hh=$(( stop_ss / 3600 ))
if [ $hh -lt 24 ]; then
rem_ss=$(( stop_ss % 3600 ))
mm=$(( rem_ss / 60 ))
ss=$(( rem_ss % 60 ))
stop_time="$hh:$mm:$ss"
else
stop_time="23:59"
fi
else
stop_time="23:59"
fi
# conversion to utc
zone=$(date +%z | cut -c 1)
utc_h=$(date -u -d @$(date "+%s" -d "$start_time") +%H)
local_h=$(echo $start_time | awk -F: '{ print $1 }')
if [ "$zone" == "+" ] && [ $utc_h -gt $local_h ]; then
start_utc="0:0"
else
start_utc=$(date -u -d @$(date "+%s" -d "$start_time") +%H:%M)
fi
utc_h=$(date -u -d @$(date "+%s" -d "$stop_time") +%H)
local_h=$(echo $stop_time | awk -F: '{ print $1 }')
if [ "$zone" == "-" ] && [ $utc_h -lt $local_h ]; then
stop_utc="23:59"
else
stop_utc=$(date -u -d @$(date "+%s" -d "$stop_time") +%H:%M)
fi
IP_RULE="$IP_RULE -m time --timestart $start_utc --timestop $stop_utc"
if [ -n "$day" ]; then
IP_RULE="$IP_RULE --weekdays $day"
fi
if [ "$access_policy" == "Deny" ]; then
IP_RULE="$IP_RULE -j DROP"
else
IP_RULE="$IP_RULE -j ACCEPT"
fi
iptables -w -A hosts_forward ${IP_RULE}
ip6tables -w -A hosts_forward ${IP_RULE}
day=""
}
iptables -w -F hosts_forward
ip6tables -w -F hosts_forward
iptables -w -t filter -N hosts_forward
ret=$?
[ $ret -eq 0 ] && iptables -w -t filter -I FORWARD -j hosts_forward
ip6tables -w -t filter -N hosts_forward
ret=$?
[ $ret -eq 0 ] && ip6tables -w -t filter -I FORWARD -j hosts_forward
# Load /etc/config/hosts UCI file
config_load hosts
config_foreach process_ac_schedule ac_schedule

View File

@@ -71,10 +71,6 @@ start_service() {
config_load "hosts"
validate_hosts_config || return 1;
if [ -f "/proc/sys/net/netfilter/nf_conntrack_timestamp" ]; then
echo 1 >/proc/sys/net/netfilter/nf_conntrack_timestamp
fi
procd_open_instance
procd_set_param command "/usr/sbin/topologyd"
procd_set_param respawn

View File

@@ -1,12 +0,0 @@
#!/bin/sh
if [ -f /etc/firewall.hosts ]; then
uci -q get firewall.hosts || {
uci -q set firewall.hosts=include
uci -q set firewall.hosts.path="/etc/firewall.hosts"
uci -q set firewall.hosts.reload=1
}
fi
exit 0

View File

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

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

View File

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

@@ -1,80 +0,0 @@
/*
* 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,7 +20,7 @@ config OBUSPA_MTP_ENABLE_STOMP
config OBUSPA_MTP_ENABLE_COAP
bool "Enable CoAP as mtp protocol"
default y
default n
config OBUSPA_CONTROLLER_MTP_VERIFY
bool "Enable verification of MQTT response topic before processing the message"

View File

@@ -5,13 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=obuspa
PKG_VERSION:=7.0.0.1
PKG_VERSION:=5.0.0.16
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=cd47bcaf1cc82dfd5c10ea76491fd0dae4436cc6
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
PKG_SOURCE_VERSION:=5d4bacd53a8ca27948108009bb48c2c6c9508c1d
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -91,7 +91,6 @@ endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/obuspa/* $(PKG_BUILD_DIR)/
$(Build/Patch)
endef
endif
@@ -101,7 +100,6 @@ 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/
@@ -109,8 +107,6 @@ define Package/obuspa/install
$(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/
$(INSTALL_BIN) ./files/etc/uci-defaults/50-add-mqtt-usp-test $(1)/etc/uci-defaults/
endef
$(eval $(call BuildPackage,obuspa))

View File

@@ -1,32 +1,60 @@
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 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 'test_mtp'
config mtp
option Protocol 'MQTT'
option ResponseTopicConfigured '/usp/endpoint'
option mqtt 'testmqtt'
option mqtt 'localmqtt'
# Adds Device.MQTT.Client.
config mqtt 'testmqtt'
config mqtt 'localmqtt'
option BrokerAddress '127.0.0.1'
option BrokerPort '1883'
option TransportProtocol 'TCP/IP'
# Adds Device.LocalAgent.Controller.
config controller 'testcontroller'
option EndpointID 'proto::interop-usp-controller'
option Protocol 'MQTT'
option Topic '/usp/controller'
option mqtt 'testmqtt'
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 challenge 'admin'
# option Description 'Request to get Administrative access'
# option role_name 'full_access'
# option Enable '1'
# option Value 'YWRtaW4='
# option Retries 2
# option LockoutPeriod 60
#config challenge 'user'
# option Description 'Request to get User access'
# option role_name 'user'
# option Enable '1'
# option Value 'dXNlcg=='
# option Retries 3
# option LockoutPeriod 30

File diff suppressed because it is too large Load Diff

View File

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

View File

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

@@ -1,14 +0,0 @@
add_usp_test()
{
if ! uci_get mosquitto usptest >/dev/null 2>&1; then
uci_add mosquitto listener usptest
uci_set mosquitto usptest enabled 1
uci_set mosquitto usptest port '9001'
uci_set mosquitto usptest protocol 'websockets'
uci_set mosquitto usptest require_certificates '0'
uci_set mosquitto usptest auth_plugin '/usr/lib/mosquitto_auth_shadow.so'
fi
}
uci_load mosquitto
add_usp_test

View File

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

@@ -1,43 +0,0 @@
--- 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.5
PKG_VERSION:=1.1.4
PKG_RELEASE:=1
PKG_SOURCE_PROTO=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/owsd.git
PKG_SOURCE_VERSION:=d866ee2a96f5b75b3f45b0e1d655431184e8032d
PKG_SOURCE_VERSION:=e37c6f9d708c454c802eede814cc51fb89c919e9
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}

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