Compare commits

..

59 Commits

Author SHA1 Message Date
Yalu Zhang
82bd89a2fa Rename etc/init.d/dect to etc/init.d/dectmngr
Also remove some files for USB DECT sound driver configuration
2021-05-11 15:12:05 +05:30
Sukru Senli
728bdacd70 endptmngr: remove copyright from init script 2021-05-11 15:12:05 +05:30
Sukru Senli
9613b4b35d endptmngr: add init script and remove ENDPT_OPEN 2021-05-11 15:12:05 +05:30
jjoseph
42c12b9a24 Update feed [iopsys] package [urlfilter] 2021-05-11 15:12:05 +05:30
Suru Dissanaike
18620d19b5 sulu: update pkg_version 2021-05-11 15:12:05 +05:30
Suru Dissanaike
a5f8436b9b Update Makefile 2021-05-11 15:12:05 +05:30
jjoseph
9937972931 urlfilter : Change permission of init.d file 2021-05-11 15:12:05 +05:30
Marin Karamihalev
ff6e67d7ee Update Makefile 2021-05-11 15:12:05 +05:30
Bartlomiej Grzeskowiak
1ba797a43d iopsys-mediatek: Add iopsys-mediatek (bpi_bananapi-r64)
- ./iop genconfig -c bpi_bananapi-r64
2021-05-11 15:12:05 +05:30
Sukru Senli
932d08e35c iop: genconfig: fix juci makefile path 2021-05-07 10:23:46 +05:30
Sukru Senli
6b38477949 easy-soc-libs: remove intel dependency 2021-05-07 10:23:46 +05:30
Sukru Senli
f9b4dea0ad juci: move from juci to iopsys feed 2021-05-07 10:23:46 +05:30
Sukru Senli
182af2c1a5 bulut: move from 3rdparty to iopsys feed 2021-05-07 10:23:46 +05:30
Sukru Senli
e5fb9bf79d sulu: move from 3rdparty to iopsys feed 2021-05-07 10:23:46 +05:30
Yalu Zhang
5ed7c8b79c Update package [ dectmngr ]
Explicitly enable the encryption between the base station and handsets
2021-05-07 10:23:46 +05:30
Andreas Gnau
545054bad4 Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* 485a38b Merge branch 'agnau-print-to-stderr' into 'master'
* bedf694 Print errors to stderr instead of stdout
-------------------------------------------------------------------------------
commit 485a38bc4eaf2a54d080b8529d5130b2955626d1
Author: Jonas Höglund <jonas.hoglund@iopsys.eu>
Date: 2021-05-05 15:06:22 +0000

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

    Print errors to stderr instead of stdout

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

    Print errors to stderr instead of stdout

Base directory -> /
 fdtextract.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
-------------------------------------------------------------------------------
2021-05-07 10:23:46 +05:30
vdutta
9550947906 obuspa: In usp BulkData collection 2021-05-06 16:43:38 +05:30
Yalu Zhang
a859c42c9a Update package [ dectmngr ]
Reject SUOTA request from the base station as it may cause handset hang
2021-05-06 13:29:12 +05:30
Sukru Senli
a97b005232 crun: use openwrt upstream version 2021-05-06 13:29:12 +05:30
Amin Ben Ramdhane
00aaa8e966 bbf: 4.1.2 2021-05-06 13:29:12 +05:30
vdutta
9fdc4d0d8a obuspa: Updated uci schema 2021-05-04 19:52:47 +05:30
Jakob Olsson
f764e2be69 map-controller: 2.4.12 2021-05-04 15:13:54 +05:30
Amin Ben Ramdhane
b46e64a4a1 bulkdata: fix compilation error 2021-05-04 15:13:54 +05:30
Amin Ben Ramdhane
9c40ae83b0 bbf: 4.1.1 2021-05-04 15:13:54 +05:30
Andreas Gnau
49dff02bf8 iop: Remove tc
The tc-utility from iproute2 is seldomly needed. In OpenWrt 21.02 there
are two variants, tc-full and tc-tiny, but since it is not needed,
remove it.
2021-05-04 15:13:54 +05:30
Jakob Olsson
72e723d8f9 map-agent: add loop detection script 2021-05-04 15:13:54 +05:30
Anjan Chanda
e908c6f6b8 wfadatad: 3.3.1 2021-05-04 15:13:54 +05:30
vdutta
176bed8df4 stunc: Added ci and docs 2021-05-04 15:13:54 +05:30
Andreas Gnau
db20d56e6e iop: Remove usbreset from config
usbreset has been moved to the usbutils package, but it is not needed,
anyways. Remove it.
2021-05-04 15:13:54 +05:30
Andreas Gnau
ea799c2870 iop: Remove alsa-lib from config
One of its dependencies causes issues and alsalib is not used by
anything.
2021-05-04 15:13:54 +05:30
Jakob Olsson
59ab62ae84 map-agent: 3.5.20 2021-05-04 15:13:54 +05:30
Jakob Olsson
8763f54e6e map-agent: 3.5.19 2021-05-04 15:13:54 +05:30
Jakob Olsson
df01b63437 map-topology: 1.5.22 2021-05-04 15:13:54 +05:30
vdutta
79eb07954e Read role json from uci 2021-04-29 12:19:10 +05:30
Anjan Chanda
5497338f67 wifimngr: 9.3.2 2021-04-29 12:19:10 +05:30
Anjan Chanda
9805015b81 easy-soc-libs: 6.2.12 2021-04-29 12:19:10 +05:30
Jonas Höglund
ae13be86c9 Update feed [ iopsys ] package [ fdtextract ]
-------------------------------------------------------------------------------
* e92fb43 Enable output of extrated file to stdout.
-------------------------------------------------------------------------------
commit e92fb432f7ec61d8cb2066dba38cf955dcd6c676
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2021-04-28 10:06:23 +0200

    Enable output of extrated file to stdout.

Base directory -> /
 fdtextract.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
-------------------------------------------------------------------------------
2021-04-29 12:19:10 +05:30
vdutta
efe8428fb6 Added assigned role for controller 2021-04-28 12:46:19 +05:30
vdutta
b44fcd804c Config options to enable/disable mtp protocols 2021-04-28 11:36:08 +05:30
vdutta
9f1b6b1eff Updated roles definition json file 2021-04-28 11:30:03 +05:30
Sukru Senli
a8f1267239 urlfilter: install default config file 2021-04-28 10:37:01 +05:30
Andreas Gnau
282dec860c peripheral_manager: Remove bcmkernel dependency
As Broadcom has moved to standard interfaces, peripheral_manager no
longer depends on Broadcom headers or executables.

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

    Remove BRCM_BOARD define

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

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

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

    Remove prox_px3220 driver

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

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

    Remove vox driver

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

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

    Remove wlctl driver

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

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

    CMakeLists.txt: Run cmake-format

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

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

    update README for doc portal

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

    update README.md

Base directory -> /
 README.md | 477 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 420 insertions(+), 57 deletions(-)
-------------------------------------------------------------------------------
2021-04-27 18:28:30 +05:30
Anjan Chanda
9ec95d1b5e wfadatad: 3.3.0 2021-04-27 18:28:30 +05:30
Anjan Chanda
fd569dcb31 prj-unish: 0.7.0 2021-04-27 18:28:30 +05:30
Anjan Chanda
f031ee17a3 wifimngr: 9.3.0 2021-04-27 18:28:30 +05:30
Anjan Chanda
5a3b7602b0 easy-soc-libs: 6.2.10 2021-04-27 18:28:30 +05:30
nevadita.chatterjee
746d3f2c89 host: Adding sighup for network change 2021-04-27 18:28:30 +05:30
Jakob Olsson
0b58bfdf1b map-topology: 1.5.21 2021-04-27 18:28:30 +05:30
Filip Matusiak
0a0633afc1 map-controller: init.d start on reload if not running 2021-04-27 18:28:30 +05:30
Jakob Olsson
e6be8ccff7 map-agent: 3.5.18 2021-04-27 18:28:30 +05:30
Sukru Senli
de675228bc urlfilter: start urlfilter only if globally enabled 2021-04-27 18:28:30 +05:30
Sukru Senli
2b43a91930 iop: select urlfilter by default 2021-04-27 18:28:30 +05:30
Jakob Olsson
1fe8dfa464 rulengd: 1.2.2 2021-04-27 18:28:30 +05:30
Amin Ben Ramdhane
1bf0a38259 bbf: 4.1.0 2021-04-27 18:28:30 +05:30
Amin Ben Ramdhane
75b93ae57b bbf: 4.0.9 2021-04-27 18:28:30 +05:30
Amin Ben Ramdhane
0391f4c509 bbf: 4.0.8 2021-04-27 18:28:30 +05:30
Amin Ben Ramdhane
f57de2675a bbf: 4.0.7 2021-04-27 18:28:30 +05:30
vdutta
7046497a13 wip: Define challenge in uci 2021-04-22 16:29:13 +05:30
76 changed files with 1227 additions and 1043 deletions

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm
PKG_VERSION:=4.3.7
PKG_VERSION:=4.1.2
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=3584e1699d57cce9c3a84c35175e8cf76de3c2ec
PKG_SOURCE_VERSION:=3034c1b324937fdccafa92e706e5986dc7a78df7
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -1,14 +1,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=crun
PKG_VERSION:=0.20
PKG_VERSION:=0.18
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/containers/crun.git
PKG_SOURCE_DATE:=2021-06-07
PKG_SOURCE_VERSION:=8d6a8b5ab80461cfed19f020a36584af13c32038
PKG_MIRROR_HASH:=9ca1f0e530b33ce8820bd03329eb6731c5050d6e7f35bd2463d9a81cc00382e0
PKG_SOURCE_DATE:=2021-03-18
PKG_SOURCE_VERSION:=496e81bdd69f117f10e4477e4204e4611a94b68f
PKG_MIRROR_HASH:=26941b0d84bbeabeb5e982af48d131f55d0aa16f4a2f2ca3279a5c812cdeea8b
PKG_BUILD_DEPENDS:=argp-standalone
PKG_BUILD_PARALLEL:=1
@@ -74,7 +74,8 @@ define Package/crun/install
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/crun $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrun.* $(1)/usr/lib/
endef

View File

@@ -8,17 +8,17 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dectmngr
PKG_RELEASE:=3
PKG_VERSION:=3.1.9
PKG_VERSION:=3.0.12
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=f9095eca8404a8121cb4a1c56a25577f5a58773d
PKG_SOURCE_VERSION:=db155c063a9875026e573bbd292dec484fc3f103
PKG_MIRROR_HASH:=skip
endif
PKG_LICENSE:=PROPRIETARY
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
RSTRIP:=true

View File

@@ -9,7 +9,6 @@ USE_PROCD=1
NAME=dectmngr
PROG=/usr/sbin/dectmngr
LOG_PATH=/var/log/dectmngr
DB_PATH=/etc/dect
# Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process.
stop_and_wait_dectmngr() {
@@ -23,25 +22,17 @@ stop_and_wait_dectmngr() {
}
start_service() {
local opt_ext=
local rfpi=
local model_id=
local opt_rfpi=
test $(db get hw.board.hasDect) = "0" && return
echo 1 > /sys/class/gpio/gpio14/value
rfpi=$(db -q get hw.board.dect_rfpi)
[ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_ext="$opt_ext -rfpi $rfpi"
# model_id=$(db -q get hw.board.dect_model_id)
# Setting model_id to 0x010203 is a workaround to reduce synchronisation time of some handset
# TODO: remove below line and uncomment the line above to get value from db when the problem is solved
model_id="01.02.03"
[ -n "$model_id" -a ${#model_id} -eq 8 ] && opt_ext="$opt_ext -model $model_id"
[ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_rfpi="-rfpi $rfpi"
procd_open_instance
procd_set_param command $PROG -comname ttyH0 -log $LOG_PATH/dect-cmbs.log $opt_ext
procd_set_param command $PROG -comname ttyH0 -log $LOG_PATH/dect-cmbs.log $opt_rfpi
procd_set_param respawn 6 2 3
procd_set_param term_timeout 20
procd_set_param triggers asterisk
@@ -70,7 +61,6 @@ boot() {
echo out > /sys/class/gpio/gpio14/direction
[ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH
[ ! -d $DB_PATH ] && mkdir -p $DB_PATH
start
}

View File

@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dslmngr
PKG_VERSION:=1.1.1
PKG_VERSION:=1.1.0
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b7aa02e86a383e2f9eedd1333b2148270daf5242
PKG_SOURCE_VERSION:=d17c699c1fc9588303d6da35ac2250903bf17cd8
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dslmngr.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -7,13 +7,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=easy-soc-libs
PKG_VERSION:=6.2.33
PKG_VERSION:=6.2.12
PKG_RELEASE:=1
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=abd678a8c716572ff0f15ab994dc715c061f8e4a
PKG_SOURCE_VERSION:=48b9abce9acace69a9b270ed4438b80434fc3446
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

View File

@@ -7,11 +7,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=endptmngr
PKG_VERSION:=0.5
PKG_VERSION:=0.4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
PKG_SOURCE_VERSION:=f50a507a1a8d1dbf83ecf1e5f27dc18a318ef492
PKG_SOURCE_VERSION:=b94de01a4ff24bb4d31bb16b3be9e1b1859359dd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -28,7 +28,7 @@ PKG_BUILD_PARALLEL:=1
PKG_CONFIG_DEPENDS:=CONFIG_TARGET_BOARD
export CONFIG_BRCM_SDK_VER_504002
export CONFIG_BCM_CHIP_ID
include $(INCLUDE_DIR)/package.mk

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:=573bf9543f8dc792b6d5dc8760cb69c64f11e932
PKG_SOURCE_VERSION:=485a38bc4eaf2a54d080b8529d5130b2955626d1
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPLv2

View File

@@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=7.4.1-2021-07-05
PKG_VERSION:=7.0.1-2021-04-15
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=40b08ae2f1500a3a3c8029486c062738d4f49b67
PKG_SOURCE_VERSION:=f70cc81e5688e32aa82084faae5bc6ff710bb81b
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -30,6 +30,7 @@ config cpe 'cpe'
option userid '' #$OUI-$SER
option passwd 'iopsys'
option port '7547'
option ubus_socket '/var/run/ubus.sock'
option provisioning_code ''
option amd_version '5'
# compression possible configs: InstanceNumber, InstanceAlias

View File

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

View File

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

View File

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

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

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

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

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

View File

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

View File

@@ -22,12 +22,14 @@ CONFIG_PACKAGE_glib2=y
CONFIG_PACKAGE_gre=y
CONFIG_PACKAGE_icwmp=y
CONFIG_PACKAGE_ieee1905=y
CONFIG_PACKAGE_map-1905=y
CONFIG_PACKAGE_map-topology=y
CONFIG_PACKAGE_mosquitto-client-ssl=y
CONFIG_PACKAGE_mosquitto-ssl=y
CONFIG_PACKAGE_wfadatad=y
CONFIG_PACKAGE_imonitor=m
CONFIG_PACKAGE_inbd=y
CONFIG_PACKAGE_iopupgrade=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_ipset=y
@@ -37,14 +39,20 @@ CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
# CONFIG_PACKAGE_iwatchdog is not set
CONFIG_PACKAGE_jq=y
CONFIG_PACKAGE_juci=y
CONFIG_PACKAGE_juci-dnsmasq-dhcp=y
CONFIG_PACKAGE_juci-firewall-fw3=y
CONFIG_PACKAGE_juci-mod-status=y
CONFIG_PACKAGE_juci-mod-system=y
CONFIG_PACKAGE_juci-network-device=y
CONFIG_PACKAGE_juci-network-dsl=y
CONFIG_PACKAGE_juci-network-netifd=y
CONFIG_PACKAGE_juci-sysupgrade=y
CONFIG_PACKAGE_juci-wireless=y
CONFIG_PACKAGE_juci-theme-iopsys=y
CONFIG_PACKAGE_libreswan=m
CONFIG_PACKAGE_libwifi=y
CONFIG_PACKAGE_lscpu=y
CONFIG_PACKAGE_luci-nginx=y
# CONFIG_LUCI_JSMIN is not set
# CONFIG_LUCI_CSSTIDY is not set
CONFIG_PACKAGE_luci-mod-dashboard=y
CONFIG_PACKAGE_luci-theme-openwrt-2020=y
CONFIG_PACKAGE_map=y
CONFIG_PACKAGE_miniupnpd=y
CONFIG_PACKAGE_mwan3=y
@@ -61,7 +69,6 @@ CONFIG_OPENSSL_WITH_COMPRESSION=y
CONFIG_PACKAGE_openvpn-easy-rsa=y
CONFIG_PACKAGE_openvpn-openssl=y
CONFIG_PACKAGE_owsd=y
CONFIG_PACKAGE_periodicstats=y
CONFIG_PACKAGE_peripheral_manager=y
CONFIG_PACKAGE_port-management=y
CONFIG_PACKAGE_ppp-mod-pppoa=y
@@ -80,7 +87,6 @@ CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-rpcsys=y
CONFIG_PACKAGE_rulengd=y
CONFIG_PACKAGE_strace=y
CONFIG_PACKAGE_sulu=y
CONFIG_PACKAGE_swmodd=m
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_terminfo=y

View File

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

View File

@@ -17,9 +17,8 @@ function genconfig {
bcm27xx="target/linux/iopsys-bcm27xx"
brcm63xx_arm="target/linux/iopsys-brcm63xx-arm"
ramips="target/linux/iopsys-ramips"
mediatek="target/linux/iopsys-mediatek"
econet="target/linux/iopsys-econet"
intel_mips="target/linux/intel_mips"
mediatek="target/linux/iopsys-mediatek"
x86="target/linux/iopsys-x86"
armvirt="target/linux/iopsys-armvirt"
@@ -117,8 +116,6 @@ function genconfig {
iopsys_ramips=$(cd $ramips; ./genconfig)
[ -e $mediatek/genconfig ] &&
iopsys_mediatek=$(cd $mediatek; ./genconfig)
[ -e $econet/genconfig ] &&
iopsys_econet=$(cd $econet; ./genconfig)
[ -e $intel_mips/genconfig ] &&
iopsys_intel_mips=$(cd $intel_mips; ./genconfig)
[ -e $x86/genconfig ] &&
@@ -129,7 +126,7 @@ function genconfig {
iopsys_bcm27xx=$(cd $bcm27xx; ./genconfig)
if [ "$profile" == "LIST" ]; then
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_mediatek iopsys_econet iopsys_intel_mips iopsys_x86 iopsys_armvirt iopsys_bcm27xx; do
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_mediatek iopsys_intel_mips iopsys_x86 iopsys_armvirt iopsys_bcm27xx; do
echo "$list based boards:"
for b in ${!list}; do
echo -e "\t$b"
@@ -162,14 +159,6 @@ function genconfig {
fi
done
for p in $iopsys_econet; do
if [ $p == $profile ]; then
target="iopsys_econet"
target_config_path="$econet/config"
return
fi
done
for p in $iopsys_intel_mips; do
if [ $p == $profile ]; then
target="intel_mips"
@@ -385,11 +374,6 @@ function genconfig {
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}_DEVICE_${BOARDTYPE}=y" >> .config
elif [ "$target" = "iopsys_econet" ]; then
subtarget="en7562"
echo "CONFIG_TARGET_${target}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}=y" >> .config
echo "CONFIG_TARGET_${target}_${subtarget}_DEVICE_${BOARDTYPE}=y" >> .config
elif [ "$target" = "iopsys_bcm27xx" ]; then
subtarget="iopsys_bcm2711"
echo "CONFIG_TARGET_${target}=y" >> .config
@@ -460,6 +444,9 @@ function genconfig {
echo "CONFIG_BRCM_MAX_JOBS=\"1\"" >>.config
fi
# Force regeneration of themes
touch package/feeds/iopsys/juci/Makefile
# Force regeneration of kernel Makefile
# Needed to disable kmods for iopsys-brcm targets
touch package/kernel/linux/Makefile

View File

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

17
iop/scripts/ssh_install_key.sh Executable file
View File

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

View File

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

View File

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

59
iopupgrade/Makefile Normal file
View File

@@ -0,0 +1,59 @@
#
# Copyright (C) 2019 iopsys
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=iopupgrade
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_SOURCE_VERSION:=01f2afd6c831d6f9eb2940c7e7af16f7e4d439c2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/iopupgrade
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz
PKG_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/iopupgrade
CATEGORY:=Utilities
TITLE:=Iopsys system upgrade utility
URL:=
# DEPENDS:=
endef
define Package/iopupgrade/description
Application handling peripheral
endef
define Package/iopupgrade/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/etc/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iopupgrade $(1)/sbin/
endef
$(eval $(call BuildPackage,iopupgrade))

329
iopupgrade/files/sbin/iopu Executable file
View File

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

View File

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

View File

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

75
map-1905/Makefile Normal file
View File

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

View File

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

View File

@@ -1,29 +1,84 @@
#!/bin/sh
wan=$(db -q get hw.board.ethernetWanPort)
diff=0
wan=$(uci -q get ports.WAN.ifname)
[ -z "$wan" ] && exit 1 # no configuration
[ "$wan" == "" ] && exit 1 # no configuration
[ "$PORT" != "$wan" ] && exit 0
update_bstas() {
local section="$1"
local action="$2"
local ifname onboarded
get_bridge() {
local id
local ifname="$1"
local bridge=""
id=$(cat /sys/class/net/${ifname}/brport/bridge/bridge/bridge_id)
config_get ifname "$section" ifname
config_get_bool onboarded "$section" onboarded 0
#echo "bridge id = $id" > /dev/console
[ "$onboarded" -eq 0 ] && return
[ "$id" = "" ] && return
wpa_cli -i "$ifname" "$action" > /dev/null 2>&1
bridge=$(brctl show | grep $id | cut -f1)
case "$bridge" in
br-*)
bridge=$(echo $bridge | cut -c4-)
;;
esac
echo $bridge
}
if [ "$LINK" = "up" ]; then
touch /tmp/map.agent.bsta_global_disable
config_load "mapagent"
config_foreach update_bstas bk-iface disconnect
disable_bstas() {
section="$1"
config_get mode "$section" mode "ap"
config_get ifname "$section" ifname
config_get device "$section" device
#echo mode=$mode ifname=$ifname > /dev/console
[ "$mode" == "sta" ] || return
uci set wireless.$section.disabled=1
bridge=$(get_bridge $ifname)
if [ "$bridge" != "" ]; then
#echo got bridge = $bridge > /dev/console
ubus call network.interface.$bridge remove_device '{"name":"$ifname"}'
fi
ifconfig "$ifname" down
diff=1
#echo disabled $ifname > /dev/console
}
enable_bstas() {
section="$1"
config_load "wireless"
config_get mode "$section" mode "ap"
config_get ifname "$section" ifname
config_get device "$section" device
#echo mode=$mode ifname=$ifname > /dev/console
[ "$mode" == "sta" ] || return
uci set wireless.$section.disabled=0
ifconfig "$ifname" up
diff=1
#echo enabled $ifname > /dev/console
}
config_load "wireless"
if [ "$LINK" == "up" ]; then
config_foreach disable_bstas wifi-iface
else
rm -f /tmp/map.agent.bsta_global_disable
config_load "mapagent"
config_foreach update_bstas bk-iface reconnect
config_foreach enable_bstas wifi-iface
fi
#echo diff = $diff > /dev/console
uci -q commit wireless
[ "$diff" == "1" ] && {
#echo reloading via uci > /dev/console
ubus call uci commit '{"config":"wireless"}'
}

View File

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

View File

@@ -8,10 +8,6 @@ USE_PROCD=1
start_service() {
config_load "mapagent"
ubus -t 5 wait_for wifi
sleep 2
local enabled
config_get_bool enabled agent enabled 1
[ "$enabled" -eq 0 ] && return 1

View File

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

View File

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

View File

@@ -14,6 +14,7 @@ handle_controller_select() {
start_service() {
local enabled
local local_ctrl=0
config_load "mapcontroller"
config_get_bool enabled controller enabled 1
@@ -22,13 +23,9 @@ start_service() {
procd_open_instance
procd_set_param command "/usr/sbin/mapcontroller" "-d"
if [ -f /etc/config/mapagent ]; then
local local_ctrl=0
config_load "mapagent"
config_foreach handle_controller_select controller_select
[ "$local_ctrl" -eq 0 ] && procd_append_param command "-w"
fi
config_load "mapagent"
config_foreach handle_controller_select controller_select
[ "$local_ctrl" -eq 0 ] && procd_append_param command "-w"
procd_set_param respawn
# procd_set_param stdout 1

View File

@@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology
PKG_VERSION:=2.1.4
PKG_VERSION:=1.5.22
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=eb6500963156865b74c2373c11366861ad75bf45
PKG_SOURCE_VERSION:=f10842f576fc29f6c3145a4b4b0efcb931d0e643
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
@@ -25,7 +25,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/map-topology
CATEGORY:=Utilities
DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \
+libieee1905 +map-plugin +libavahi-nodbus-support
+libieee1905 +libavahi-nodbus-support
TITLE:=Utility to build topology of a multi-AP network
endef

View File

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

View File

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

View File

@@ -35,6 +35,7 @@ generate_mcast_config(){
uci set mcast.@proxy[-1].last_member_query_interval="10"
uci set mcast.@proxy[-1].fast_leave="1"
uci set mcast.@proxy[-1].snooping_mode="2"
uci set mcast.@proxy[-1].lan_to_lan="0"
uci add_list mcast.@proxy[-1].downstream_interface="br-lan"
IFS=" "

View File

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

View File

@@ -5,15 +5,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=obuspa
PKG_VERSION:=4.0.0.10
PKG_VERSION:=3.0.0.32
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=56dca342de0704b479f408b72712e282a413557a
PKG_SOURCE_VERSION:=7afcb04746566f19478dfdb5dd922d57d9e60166
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -30,7 +30,8 @@ define Package/obuspa
SECTION:=utils
CATEGORY:=Utilities
TITLE:=USP agent
DEPENDS:=+libopenssl +libcurl +libsqlite3 +libubox +libubus +uspd +libmosquitto
PKG_BUILD_DEPENDS:=+openssl +ubus +sqlite3 +curl +ubox +uci
DEPENDS:=+libopenssl +libcurl +libsqlite3 +libubox +libubus +libmosquitto +uspd +libuci
endef
define Package/obuspa/description
@@ -85,7 +86,6 @@ define Package/obuspa/install
$(INSTALL_BIN) ./files/etc/init.d/obuspa $(1)/etc/init.d/
$(INSTALL_DATA) ./files/etc/config/obuspa $(1)/etc/config/
$(INSTALL_DATA) ./files/etc/obuspa/roles.json $(1)/etc/obuspa/roles.json
$(INSTALL_DATA) ./files/etc/obuspa/dmcaching_exclude.json $(1)/etc/obuspa/dmcaching_exclude.json
$(INSTALL_BIN) ./files/etc/hotplug.d/iface/85-obuspa $(1)/etc/hotplug.d/iface/
endef

View File

@@ -5,8 +5,7 @@ config obuspa 'global'
option debug '0'
option log_level '1'
#option db_file '/etc/obuspa/usp.db'
#option role_file '/etc/obuspa/roles.json'
option dm_caching_exclude '/etc/obuspa/dmcaching_exclude.json'
option role_file '/etc/obuspa/roles.json'
#option trust_cert '/etc/obuspa/rootCA.pem'
#option client_cert '/etc/obuspa/client.pem'
#option log_dest '/var/log/obuspa'
@@ -20,7 +19,7 @@ config controller 'localcontroller'
option Protocol 'MQTT'
option Topic '/usp/controller'
option mqtt 'localmqtt'
option assigned_role_name 'full_access'
option assigned_role_name 'Full Access'
# Adds Device.LocalAgent.MTP.
config mtp
@@ -33,6 +32,8 @@ config mqtt 'localmqtt'
option BrokerAddress '127.0.0.1'
option BrokerPort '1883'
option TransportProtocol 'TCP/IP'
option Username 'admin'
option Password 'admin'
# Add Device.LocalAgent.Subscription.
config subscription
@@ -42,18 +43,18 @@ config subscription
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 'admin'
# option Retries 2
# option LockoutPeriod 60
config challenge 'admin'
option Description 'Request to get Administrative access'
option role_name 'Full Access'
option Enable '1'
option Value 'admin'
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 'user'
# option Retries 3
# option LockoutPeriod 30
config challenge 'user'
option Description 'Request to get User access'
option role_name 'user'
option Enable '1'
option Value 'user'
option Retries 3
option LockoutPeriod 30

View File

@@ -32,7 +32,7 @@ cleanup() {
trap cleanup EXIT
log() {
echo "${@}"|logger -t obuspa.init -p debug
echo "${@}"|logger -t obuspa -p debug
}
db_set() {
@@ -52,35 +52,33 @@ get_index() {
get_role_index_from_json() {
local role="${@}"
local num=0
# In case of role is empty or file not present
if [ -z "${role}" -o ! -f ${role_def_file} ]; then
echo 0
return 0
fi
json_init
json_load_file ${role_def_file}
if [ $? -ne 0 ]; then # In case of invalid json file
echo 0
return 0
fi
json_select roles
json_get_keys roles_obj
for k in ${roles_obj}; do
local rname
json_select $k
json_get_var rname name
json_get_var name name
json_select ..
if [ "${rname}" != "Untrusted" -a "${rname}" != "full_access" ]; then
num=$(( num + 1 ))
fi
if [ "${role}" = "${rname}" ]; then
return ${num}
if [ "${role}" = "${name}" ]; then
echo "${k}"
return 0
fi
done
return 0
echo 0
}
get_uci_ref_index() {
@@ -109,11 +107,11 @@ validate_obuspa_section()
'trust_cert:file' \
'client_cert:file' \
'interface:string' \
'ifname:string:br-lan' \
'ifname:string:"br-lan"' \
'debug:bool:false' \
'log_level:uinteger' \
'log_dest:string' \
'db_file:string' \
'log_dest:file' \
'db_file:file' \
'role_file:file'
}
@@ -216,7 +214,7 @@ configure_localagent() {
validate_localagent_section 'localagent' || {
log "Validation of localagent section failed"
return 1;
exit 1;
}
if [ -n "${EndpointID}" ]; then
@@ -241,7 +239,7 @@ configure_controller() {
validate_controller_section "${1}" || {
log "Validation of controller section failed"
return 1;
exit 1;
}
if [ -z "${EndpointID}" -o -z "${Protocol}" ]; then
@@ -274,7 +272,6 @@ configure_controller() {
controller_num=$(( controller_num + 1 ))
db_set Device.LocalAgent.Controller.${controller_num}.Alias "cpe-${controller_num}"
db_set Device.LocalAgent.Controller.${controller_num}.Enable "${Enable}"
db_set Device.LocalAgent.Controller.${controller_num}.EndpointID "${EndpointID}"
if [ -n "${AssignedRole}" ]; then
@@ -296,7 +293,6 @@ configure_controller() {
db_set Device.LocalAgent.Controller.${controller_num}.USPNotifRetryIntervalMultiplier "${USPNotifRetryIntervalMultiplier}"
db_set Device.LocalAgent.Controller.${controller_num}.ControllerCode "${ControllerCode}"
db_set Device.LocalAgent.Controller.${controller_num}.MTP.1.Alias "cpe-${controller_num}"
db_set Device.LocalAgent.Controller.${controller_num}.MTP.1.Enable "${Enable}"
db_set Device.LocalAgent.Controller.${controller_num}.MTP.1.Protocol "${Protocol}"
# only support configuration of one mtp path per controller using uci
@@ -323,7 +319,7 @@ configure_subscription(){
validate_subscription_section "${1}" || {
log "Validation of subscription section failed"
return 1;
exit 1;
}
if [ -z "${Recipient}" -a -z "${controller}" ]; then
@@ -341,7 +337,6 @@ configure_subscription(){
subs_num=$(( subs_num + 1))
db_set Device.LocalAgent.Subscription.${subs_num}.Alias "cpe-${subs_num}"
db_set Device.LocalAgent.Subscription.${subs_num}.Enable "${Enable}"
db_set Device.LocalAgent.Subscription.${subs_num}.ID "${ID}"
db_set Device.LocalAgent.Subscription.${subs_num}.NotifType "${NotifType}"
@@ -363,45 +358,24 @@ validate_challenge_section()
'LockoutPeriod:uinteger:0'
}
check_json_load()
{
local ret=0
if [ -f ${role_def_file} ]; then
json_init
json_load_file ${role_def_file} 2>&1 |grep -q Failed
if [ $? -eq 0 ]; then # In case of invalid json file
log "failed to load [${role_def_file}]"
ret=1
fi
fi
json_init
return ${ret}
}
get_role_index() {
local role="Device.LocalAgent.ControllerTrust.Role"
local idx=0
local index=0
local role_name="${@}"
case "${role_name}" in
'full_access')
idx=1;
;;
'Full Access')
index=1;
;;
'Untrusted')
idx=2;
;;
index=2;
;;
*)
local ji=0
check_json_load
if [ $? -eq 0 ]; then
get_role_index_from_json ${role_name}
ji=$?
fi
idx=$(( ji + 2 )) # Add predefined roles
local ji=$(get_role_index_from_json ${role_name})
index=$(( ji + 2 )) # Add predefined roles
esac
echo "${role}.${idx}"
echo "${role}.${index}"
}
configure_challenges() {
@@ -445,7 +419,7 @@ configure_mtp() {
validate_mtp_section "${1}" || {
log "Validation of mtp section failed"
return 1;
exit 1;
}
if [ -z ${Reference} ]; then
@@ -467,7 +441,6 @@ configure_mtp() {
fi
mtp_num=$(( mtp_num + 1 ))
db_set Device.LocalAgent.MTP.${mtp_num}.Alias "cpe-${mtp_num}"
db_set Device.LocalAgent.MTP.${mtp_num}.Enable "${Enable}"
db_set Device.LocalAgent.MTP.${mtp_num}.Protocol "${Protocol}"
if [ "${Protocol}" = "MQTT" ]; then
@@ -496,7 +469,7 @@ configure_stomp_connection() {
validate_stomp_connection_section "${1}" || {
log "Validation of stomp section failed"
return 1;
exit 1;
}
stomp_num=$(( stomp_num + 1 ))
@@ -505,7 +478,6 @@ configure_stomp_connection() {
db_set Device.STOMP.Connection.${stomp_num}.Username "${Username}"
db_set Device.STOMP.Connection.${stomp_num}.Password "${Password}"
db_set Device.STOMP.Connection.${stomp_num}.Alias "cpe-${stomp_num}"
db_set Device.STOMP.Connection.${stomp_num}.Enable "${Enable}"
db_set Device.STOMP.Connection.${stomp_num}.Port "${Port}"
db_set Device.STOMP.Connection.${stomp_num}.EnableEncryption "${encryption}"
@@ -525,7 +497,7 @@ configure_mqtt_client(){
validate_mqtt_client_section "${1}" || {
log "Validation of mqtt section failed"
return 1;
exit 1;
}
if [ -z "${BrokerAddress}" ]; then
@@ -535,7 +507,6 @@ configure_mqtt_client(){
mqtt_num=$(( mqtt_num + 1 ))
db_set Device.MQTT.Client.${mqtt_num}.Alias "cpe-${mqtt_num}"
db_set Device.MQTT.Client.${mqtt_num}.Enable "${Enable}"
db_set Device.MQTT.Client.${mqtt_num}.BrokerAddress "${BrokerAddress}"
db_set Device.MQTT.Client.${mqtt_num}.BrokerPort "${BrokerPort}"
@@ -558,10 +529,11 @@ configure_obuspa() {
validate_obuspa_section "global" || {
log "Validation of global section failed"
return 1;
exit 1;
}
role_def_file="${role_file}"
[ ${enabled} -eq 0 ] && exit 0
if [ ${debug} -eq 1 ]; then
# Forward stdout of the command to logd
@@ -648,25 +620,39 @@ remove_db() {
}
service_running() {
local AgentEndpointID serial oui user pass
local opt=""
ubus -t 10 wait_for usp.raw
config_load obuspa
config_get AgentEndpointID localagent EndpointID ""
if [ -z "${AgentEndpointID}" ]; then
serial=$(ubus -t 1 call usp.raw get '{"path":"Device.DeviceInfo.SerialNumber"}'|jsonfilter -e '@["parameters"][0].value')
oui=$(ubus -t 1 call usp.raw get '{"path":"Device.DeviceInfo.ManufacturerOUI"}'|jsonfilter -e '@["parameters"][0].value')
AgentEndpointID="os::${oui}-${serial}"
fi
config_get user localmqtt Username
if [ -n "${user}" ]; then
opt="-u ${user}"
fi
config_get pass localmqtt Password
if [ -n "${pass}" ]; then
opt="${opt} -P ${pass}"
fi
# publish Agent's EndpointID in mosquito broker for discovery
# This is a work around till obuspa does not support advertising
log "Publishing EndpointID ${AgentEndpointID} to local mqtt broker"
mosquitto_pub -r -t "obuspa/EndpointID" -m "${AgentEndpointID}" ${opt}
procd_running ${CONFIGURATION}
}
start_service() {
local enabled
config_load obuspa
config_get enabled global enabled
if [ "${enabled}" -eq 0 ]; then
log "OBUSPA not enabled"
return 0;
fi
ubus wait_for usp.raw
if [ "$?" -ne 0 ]; then
log "OBUSPA failed to start usp.raw not available"
return 0
exit 0
fi
procd_open_instance ${CONFIGURATION}

View File

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

View File

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

View File

@@ -1,6 +1,5 @@
config owsd 'global'
option enable '0'
# option sock '/var/run/ubus/ubus.sock'
option sock '/var/run/ubus.sock'
option www '/www'
# option redirect '/cgi-bin/luci:/cacheflush.html'
# option www_maxage '3600'

View File

@@ -124,7 +124,6 @@ validate_owsd_ubusproxy() {
validate_owsd_global() {
uci_validate_section "owsd" "owsd" "global" \
'enable:bool:1' \
'sock:string' \
'redirect:string' \
'www:string' \
@@ -321,10 +320,6 @@ start_service() {
load_dhcp_domains
config_load owsd # note: do not overload a config while parsing it
config_get_bool owsd_enable global enable 1
[ $owsd_enable -eq 1 ] || return 0
procd_open_instance
procd_set_param command $PROG

View File

@@ -1,52 +0,0 @@
#
# Copyright (C) 2021 IOPSYS
#
include $(TOPDIR)/rules.mk
PKG_NAME:=periodicstats
PKG_VERSION:=1.0.2
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=d53b540a89165753922707ed624b315d58abd10a
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/periodicstats.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/periodicstats
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Periodic Statistics Daemon
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libbbfdm +libbbf_api +uspd
endef
define Package/periodicstats/description
Manage periodic statistics
endef
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ./periodicstats/* $(PKG_BUILD_DIR)/
endef
endif
define Package/periodicstats/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(CP) $(PKG_BUILD_DIR)/bbf_plugin/libperiodicstats.so $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/periodicstatsd $(1)/usr/sbin
endef
$(eval $(call BuildPackage,periodicstats))

View File

@@ -1,4 +0,0 @@
config globals 'globals'
option enable '0'
option base_interval '5'

View File

@@ -1,37 +0,0 @@
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
NAME=periodicstatsd
PROG=/usr/sbin/periodicstatsd
. /lib/functions.sh
start_service() {
ubus wait_for usp
if [ -f "/etc/config/periodicstats" ]; then
if [ "$(uci -q get periodicstats.globals.enable)" == "1" ]; then
procd_open_instance periodicstatsd
procd_set_param command ${PROG}
procd_set_param respawn
procd_close_instance
fi
fi
}
stop() {
#stop_service() is called after procd killed the service
echo ;
}
service_triggers() {
procd_add_reload_trigger periodicstats uspd
}
reload_service() {
stop
start
}

71
prj-unish/Makefile Normal file
View File

@@ -0,0 +1,71 @@
#
# Copyright (C) 2021 Iopsys
#
include $(TOPDIR)/rules.mk
PKG_NAME:=prj-unish
PKG_VERSION:=0.7.0
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=595bd811428f4c1271cc8e2f61a9b6311f4672f0
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/prj-unish.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/prj-unish
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Project unish
DEPENDS:=+libwifi +libuci +libubox +ubus +libpthread +libnl-genl
endef
define Package/prj-unish/description
This package provides unish-paanch.
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-D_GNU_SOURCE
MAKE_PATH:=src
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
rsync -r --exclude=.* ~/git/prj-unish/ $(PKG_BUILD_DIR)/
endef
endif
define Build/InstallDev
#$(INSTALL_DIR) $(STAGING_DIR)/usr/include
#$(CP) $(PKG_BUILD_DIR)/src/cmdu.h $(STAGING_DIR)/usr/include/
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/src/cmdu.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/lib*.so* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map2.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/map_module.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/lib*.so* $(1)/usr/lib/
endef
define Package/prj-unish/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/src/lib*.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/i1905d $(1)/usr/sbin/
$(CP) $(PKG_BUILD_DIR)/src/extensions/map/*.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,prj-unish))

View File

@@ -0,0 +1,23 @@
config ieee1905 'ieee1905'
option enabled '1'
option extension 0
option macaddress 'aa:aa:aa:10:20:30'
option registrar '2 5'
config ap
option band '2'
option ssid 'TestSSID.2'
option encryption 'psk2'
option key '5555500000'
config ap
option band '5'
option ssid 'TestSSID.5'
option encryption 'psk2'
option key '2222200000'
config al-iface
option enabled 1
option ifname 'br-lan'
option type 'bridge'

View File

@@ -6,14 +6,14 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=qosmngr
PKG_VERSION:=1.0.1
PKG_VERSION:=1.0.0
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=03df56c6eb7c6737ce95576e89c915df77396953
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/qosmngr.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif

View File

@@ -3,7 +3,7 @@
. /lib/functions.sh
ethwan="$(db -q get hw.board.ethernetWanPort)"
cpu_model="$(brcm_fw_tool -k info)"
cpu_model="$(grep Hardware /proc/cpuinfo | awk '{print$NF}')"
generate_queue(){
section="$1"
@@ -19,7 +19,7 @@ generate_queue(){
if [ $is_lan -eq 1 ]; then
case $cpu_model in
68*) no_of_q="0 1 2 3" ;;
BCM968*) no_of_q="0 1 2 3" ;;
esac
fi

View File

@@ -231,12 +231,6 @@ handle_shaper() {
fi
config_get rate "$sid" "rate"
# Convert the rate from bps to kbps.
if [ $rate -lt 1000 ];then
return
fi
rate=$(($rate / 1000))
config_get bs "$sid" "burst_size"
tmctl setportshaper --devtype 0 --if $ifname --shapingrate $rate --burstsize $bs
}
@@ -305,20 +299,7 @@ broute_filter_on_dst_mac() {
}
broute_filter_on_pcp() {
# 5.04 onwards the vlan extension in ebtables is used for classification
# on the basis of vlan params which needs proto to be defined as 802_1Q in
# order to add a rule, now, proto can also be defined by specifying proto uci
# option as well as the rule may have a vlan id as well in which case the
# proto will already be present, hence, this check to not add --proto more
# than once
case "$BR_RULE" in
*proto*)
BR_RULE="$BR_RULE --vlan-prio $1"
;;
*)
BR_RULE="$BR_RULE --proto 802_1Q --vlan-prio $1"
;;
esac
BR_RULE="$BR_RULE --skbvlan-prio $1"
}
broute_filter_on_ether_type() {
@@ -326,14 +307,7 @@ broute_filter_on_ether_type() {
}
broute_filter_on_vid() {
case "$BR_RULE" in
*proto*)
BR_RULE="$BR_RULE --vlan-id $1"
;;
*)
BR_RULE="$BR_RULE --proto 802_1Q --vlan-id $1"
;;
esac
BR_RULE="$BR_RULE --skbvlan-id $1"
}
broute_rule_set_traffic_class() {

View File

@@ -5,14 +5,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=rulengd
PKG_VERSION:=1.2.3
PKG_VERSION:=1.2.2
PKG_RELEASE:=1
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_SOURCE_PROTO=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/rulengd.git
PKG_SOURCE_VERSION:=f5ded45562189a05f3912182d708bcb1427912f8
PKG_SOURCE_VERSION:=e5afe7734674d416138a54526cc589c57ba28279
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}

View File

@@ -8,9 +8,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=stunc
PKG_VERSION:=1.0.2
PKG_VERSION:=1.0.1
PKG_SOURCE_VERSION:=d578df0c8e4e7d1b642a5cf037ce468379270534
PKG_SOURCE_VERSION:=cd7c5d70bc97a2f1a26d5587ccf6f4c1e9ca82c8
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/stunc.git
@@ -29,7 +29,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=BBF STUN Client
DEPENDS:=+libubus +libuci +libubox +libjson-c +libopenssl +libblobmsg-json +libbbf_api
DEPENDS:=+libubus +libuci +libubox +libjson-c +libopenssl +libblobmsg-json
endef
define Package/$(PKG_NAME)/description
@@ -43,11 +43,9 @@ define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libstunc.so $(1)/usr/lib/bbfdm/libstunc.so
$(INSTALL_BIN) $(PKG_BUILD_DIR)/stunc $(1)/usr/sbin/
$(INSTALL_BIN) ./files/etc/init.d/stunc $(1)/etc/init.d/stunc
$(INSTALL_DATA) ./files/etc/config/stunc $(1)/etc/config/stunc
$(INSTALL_DATA) ./files/etc/config/stun $(1)/etc/config/stun
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -1,6 +1,6 @@
config stunc 'stunc'
option enabled '0'
config stun 'stun'
option enable '0'
option username 'stun'
option password 'stun'
option server_address 'stun.l.google.com'

View File

@@ -1,20 +1,23 @@
#!/bin/sh /etc/rc.common
# STUN client software
# Copyright (C) 2020 iopsys Software Solutions AB
# Author: Omar Kallel <omar.kallel@pivasoftware.com>
START=99
STOP=15
START=90
USE_PROCD=1
PROG="/usr/sbin/stunc"
log() {
#echo "${@}" >/dev/console
echo "${@}"|logger -t stunc -p info
echo "${@}"|logger -t stun -p info
}
validate_stun_section()
{
uci_validate_section stunc stunc stunc \
'enabled:bool' \
uci_validate_section stun stun stun \
'enable:bool' \
'Username:string' \
'Password:string' \
'server_address:host' \
@@ -23,26 +26,31 @@ validate_stun_section()
'log_level:uinteger:0'
}
start_service() {
local enabled server_address
service_running() {
ubus wait_for tr069
return $?;
}
config_load stunc
start_service() {
local enable server_address
config_load stun
validate_stun_section || {
log "Validation failed for stunc section";
return 1;
log "Validation failed for stun section";
exit 1;
}
if [ "$enabled" -eq 0 ]; then
return 0;
if [ "$enable" -eq 0 ]; then
exit 0;
fi
if [ -z "${server_address}" ]; then
log "Stun server address not defined or invalid"
return 0;
exit 0;
fi
procd_open_instance stunc
procd_set_param command ${PROG}
procd_open_instance stun
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
procd_close_instance
@@ -55,5 +63,5 @@ reload_service() {
service_triggers()
{
procd_add_reload_trigger stunc
procd_add_reload_trigger stun
}

View File

@@ -5,40 +5,40 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=sulu
PKG_VERSION:=0.2.18
PKG_VERSION:=0.2.1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/sulu.git
PKG_SOURCE_VERSION:=06411282a6c2d02d21599786c0dd12c00c711847
PKG_SOURCE_VERSION:=a41d8edde15be3f22e358fb31e0b4786047dab53
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_RELEASE=$(PKG_VERSION)-$(PKG_SOURCE_VERSION)
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/sulu
SECTION:=sulu
CATEGORY:=Utilities
MENU=1
TITLE:=SULU-CE ReactJS based Web UI Package
DEPENDS:=+nginx
# $(Package/sulu/default)
SECTION:=sulu
CATEGORY:=Utilities
MENU=1
TITLE:=SULU-CE ReactJS based Web UI Package
endef
define Package/sulu/description
SULU-CE ReactJS based Web UI.
SULU-CE ReactJS based Web UI.
endef
define Package/sulu/install
$(INSTALL_DIR) $(1)/sulu
$(CP) $(PKG_BUILD_DIR)/dist/* $(1)/sulu
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/www
$(CP) $(PKG_BUILD_DIR)/out/* $(1)/www
# $(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,sulu))

View File

@@ -1,63 +0,0 @@
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
log() {
echo "${@}"|logger -t sulu.init -p debug
}
publish_endpoint() {
local AgentEndpointID serial oui user pass
local opt=""
# return if mosquitto_pub is not present
if ! which mosquitto_pub; then
log "mosquitto_pub not present can't publish endpointid"
return 0;
fi
ubus -t 10 wait_for usp.raw
# Get endpoint id from obuspa config first
config_load obuspa
config_get AgentEndpointID localagent EndpointID ""
if [ -z "${AgentEndpointID}" ]; then
serial=$(ubus -t 1 call usp.raw get '{"path":"Device.DeviceInfo.SerialNumber"}'|jsonfilter -e '@["parameters"][0].value')
oui=$(ubus -t 1 call usp.raw get '{"path":"Device.DeviceInfo.ManufacturerOUI"}'|jsonfilter -e '@["parameters"][0].value')
AgentEndpointID="os::${oui}-${serial}"
fi
config_get user localmqtt Username
if [ -n "${user}" ]; then
opt="-u ${user}"
fi
config_get pass localmqtt Password
if [ -n "${pass}" ]; then
opt="${opt} -P ${pass}"
fi
# publish Agent's EndpointID in mosquito broker for discovery
# This is a work around till obuspa does not support advertising
log "Publishing EndpointID ${AgentEndpointID} to local mqtt broker"
mosquitto_pub -r -t "obuspa/EndpointID" -m "${AgentEndpointID}" ${opt}
}
start_service() {
procd_open_instance sulu
publish_endpoint
procd_close_instance
}
reload_service() {
stop
start
}
service_triggers()
{
procd_add_config_trigger "config.change" "obuspa" /etc/init.d/sulu reload
}

View File

@@ -1,18 +0,0 @@
# proxy required for nginx to save the file
location /upload_proxy {
return 200 "File upload is successful \n";
}
location /upload {
limit_except POST { deny all; }
client_body_temp_path /tmp/sulu; # the directory to which uploads will be saved, make sure to create the directory you wish to use
client_body_in_file_only on;
client_body_buffer_size 128K;
client_max_body_size 50M;
proxy_pass_request_headers on;
proxy_set_header X-FILE $request_body_file;
proxy_set_body $request_body_file;
proxy_redirect off;
#proxy_pass is necessary. body is only stored when being passed to middleware, so we are providing a proxy that just returns 200.
proxy_pass http://127.0.0.1:8080/upload_proxy;
}

View File

@@ -1,7 +0,0 @@
mkdir -p /tmp/sulu
uci -q set nginx._sulu=server
uci -q add_list nginx._sulu.listen='8080'
uci -q add_list nginx._sulu.listen='[::]:8080'
uci -q add_list nginx._sulu.include='conf.d/sulu.locations'
uci -q set nginx._sulu.root='/sulu'
uci -q set nginx._sulu.server_name='_sulu'

View File

@@ -6,16 +6,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=swmodd
PKG_VERSION:=2.0.1
PKG_VERSION:=1.1.0
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=7971057300f315acda9ed1090e9a02fda7f5e5d5
PKG_SOURCE_VERSION:=c8cc4a3b332ea931dbf2fe7e6b94bebf5c4bcc33
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/swmodd.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -24,12 +21,12 @@ include $(INCLUDE_DIR)/package.mk
define Package/swmodd
SECTION:=utils
CATEGORY:=Utilities
TITLE:= Software Modules Daemon
DEPENDS:=+libuci +libubox +ubus +libuuid +libbbf_api +PACKAGE_liblxc:liblxc
TITLE:=SWMOD - software modules ubus backend
DEPENDS:=+libuci +libubox +ubus +libuuid +PACKAGE_liblxc:liblxc
endef
define Package/swmodd/description
Software module daemon to manage software/deployment units using TR181 datamodel.
Ubus based backend for software modules which can be used by other applications running on top of it.
endef
TARGET_CFLAGS += \
@@ -41,21 +38,13 @@ MAKE_FLAGS += \
SWMOD_LXC="yes"
endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/swmodd/* $(PKG_BUILD_DIR)/
endef
endif
define Package/swmodd/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_DIR) $(1)/etc/swmod
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_CONF) ./files/map_du $(1)/etc/swmod/map_du
$(INSTALL_BIN) ./files/swmodd.init $(1)/etc/init.d/swmodd
$(INSTALL_DIR) $(1)/etc/swmod
$(INSTALL_CONF) ./files/map_du $(1)/etc/swmod/map_du
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/swmodd $(1)/usr/sbin/swmodd
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libswmodd.so $(1)/usr/lib/bbfdm/libswmodd.so
endef
$(eval $(call BuildPackage,swmodd))

View File

@@ -7,7 +7,7 @@ USE_PROCD=1
PROG=/usr/sbin/swmodd
start_service() {
procd_open_instance swmodd
procd_open_instance
procd_set_param command ${PROG}
procd_set_param respawn
procd_close_instance

View File

@@ -6,15 +6,14 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=urlfilter
PKG_VERSION:=1.1.1
PKG_VERSION:=1.0.0
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=a2fca29140673d058eb0bfb2b3b3c9e61d7f301f
PKG_SOURCE_VERSION:=891e8d36446c0b1e7999c5798375985b1804fcf1
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/urlfilter.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
@@ -27,7 +26,7 @@ define Package/urlfilter
SECTION:=utils
CATEGORY:=Utilities
TITLE:=URL filter
DEPENDS:=+libuci +libnetfilter-queue +libnfnetlink +iptables-mod-nfqueue +libpthread +libubox +ubus +conntrack
DEPENDS:=+libuci +libnetfilter-queue +libnfnetlink +libpthread +libubox +ubus
endef
define Package/urlfilter/description

View File

@@ -1,2 +1,2 @@
config globals globals
option enable 0
option enable 1

View File

@@ -9,31 +9,14 @@ PROG=/usr/sbin/urlfilter
configure_firewall()
{
iptables -w -L FORWARD|grep -iqE "NFQUEUE"
iptables -L FORWARD|grep -iqE "NFQUEUE"
if [ "$?" -ne 0 ]; then
# setup netfilter queue 0, use queue bypass so that if no application is
# listening to this queue then traffic is unaffected.
iptables -w -I FORWARD 1 -p tcp --dport 80 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -I FORWARD 2 -p tcp --dport 443 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -I FORWARD 3 -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -I FORWARD 4 -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -I INPUT 1 -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -I INPUT 2 -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
# disable acceleration for https packet so that they can be read by urlfilter
ebtables -A FORWARD -p ip --ip-protocol 6 --ip-destination-port 443 -j SKIPLOG
echo "Applying firewall rule to setup NFQUEUE on forward traffic for urlfiltering"
iptables -I FORWARD 1 -p tcp --dport 80 -j NFQUEUE --queue-num 0
iptables -I FORWARD 2 -p tcp --dport 443 -j NFQUEUE --queue-num 0
iptables -I INPUT 1 -p udp --dport 53 -j NFQUEUE --queue-num 0
iptables -I INPUT 2 -p udp --sport 53 -j NFQUEUE --queue-num 0
fi
ip6tables -w -L FORWARD|grep -iqE "NFQUEUE"
if [ "$?" -ne 0 ]; then
#ip6table rules
ip6tables -w -I FORWARD 1 -p tcp --dport 80 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -I FORWARD 2 -p tcp --dport 443 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -I FORWARD 3 -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -I FORWARD 4 -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -I INPUT 1 -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -I INPUT 2 -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
fi
}
start_service() {
@@ -43,44 +26,34 @@ start_service() {
configure_firewall
procd_set_param respawn
procd_close_instance
# Now flush the existing connections, otherwise,
# URL filtering cannot be performed on already open sites.
if [ -n "$(which conntrack)" ]; then
sleep 5
conntrack -F
fi
fi
}
stop_service() {
iptables -w -L FORWARD|grep -iqE "NFQUEUE"
pidof $NAME >/dev/null
if [ "$?" -eq 0 ]; then
pidof $NAME > /dev/null 2>&1 && killall -q $NAME
pidof $NAME > /dev/null 2>&1
while pidof $NAME > /dev/null 2>&1; do
killall -q -9 $NAME
done
fi
iptables -L FORWARD|grep -iqE "NFQUEUE"
if [ "$?" -eq 0 ]; then
iptables -w -D FORWARD -p tcp --dport 80 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -D FORWARD -p tcp --dport 443 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -D FORWARD -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -D FORWARD -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -D INPUT -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
iptables -w -D INPUT -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
ebtables -D FORWARD -p ip --ip-protocol 6 --ip-destination-port 443 -j SKIPLOG
fi
ip6tables -w -L FORWARD|grep -iqE "NFQUEUE"
if [ "$?" -eq 0 ]; then
#ip6table rules
ip6tables -w -D FORWARD -p tcp --dport 80 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -D FORWARD -p tcp --dport 443 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -D FORWARD -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -D FORWARD -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -D INPUT -p udp --dport 53 -j NFQUEUE --queue-num 0 --queue-bypass
ip6tables -w -D INPUT -p udp --sport 53 -j NFQUEUE --queue-num 0 --queue-bypass
echo "Deleting firewall rule to setup NFQUEUE on forward traffic for urlfiltering"
iptables -D FORWARD -p tcp --dport 80 -j NFQUEUE --queue-num 0
iptables -D FORWARD -p tcp --dport 443 -j NFQUEUE --queue-num 0
iptables -D INPUT -p udp --dport 53 -j NFQUEUE --queue-num 0
iptables -D INPUT -p udp --sport 53 -j NFQUEUE --queue-num 0
fi
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "urlfilter"
procd_add_reload_trigger "firewall"

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=uspd
PKG_VERSION:=2.1.22
PKG_VERSION:=2.1.15
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=c07225ef8e138597c5da0d2c8041d2eab096b659
PKG_SOURCE_VERSION:=8463c05d8bf6ed9145e018a9816baefce08bd2ec
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/uspd.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -28,14 +28,14 @@ configure_uspd()
return 1;
}
[ ${enabled} -eq 0 ] && return 0
[ ${enabled} -eq 0 ] && exit 0
if [ ${debug} -eq 1 ]; then
procd_set_param stdout 1
procd_set_param stderr 1
fi
if [ -f "${sock}" ]; then
if [ -n "${sock}" ]; then
procd_append_param command -s ${sock}
fi

View File

@@ -5,10 +5,10 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wfadatad
PKG_VERSION:=4.0.6
PKG_VERSION:=3.3.1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=43a3a5fd64d6476f07640e1b7ba1a2c5f242cb78
PKG_SOURCE_VERSION:=9d7e1fea212fc06d7a1d37a5a52d9a55be0c36f2
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfadatad.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -17,9 +17,6 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=map-plugin
include $(INCLUDE_DIR)/package.mk
define Package/wfadatad
@@ -27,7 +24,7 @@ define Package/wfadatad
CATEGORY:=Utilities
TITLE:=WiFi Data Elements-1.0 Agent and Collector
DEPENDS:=+libwifi +libuci +libubox +ubus +libpthread +libnl-genl \
+!WFA_DELM_STANDALONE:map-agent +libieee1905 +map-plugin
+!WFA_DELM_STANDALONE:map-agent +WFA_DELM_MULTIAP_MODE:libmaputils
endef
define Package/wfadatad/description

View File

@@ -7,12 +7,12 @@ USE_PROCD=1
PROG=/usr/sbin/wfadatad
service_running() {
ubus -t 2 wait_for ieee1905 ieee1905.map
ubus -t 2 wait_for ieee1905 map.1905
}
start_service() {
procd_open_instance
procd_set_param command "$PROG" "-d" "-t 15"
procd_set_param command "$PROG" "-d"
#procd_set_param respawn
procd_close_instance

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wifimngr
PKG_VERSION:=11.2.0
PKG_VERSION:=9.3.2
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=505bc2c4f6f126f3d35d36d8db5a8d42b149d9c2
PKG_SOURCE_VERSION:=a3a5ed150a9d2f267f9a15e927fa030831807674
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wifimngr.git
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz

View File

@@ -8,9 +8,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=xmppc
PKG_VERSION:=1.0.1
PKG_VERSION:=1.0.0
PKG_SOURCE_VERSION:=a98cdda759418dab1c12a18c345112d94ed4c02e
PKG_SOURCE_VERSION:=231b010d5578bedee5f37de3ad7bd65e57f13a31
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/xmppc.git
@@ -29,7 +29,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=BBF xmpp Client
DEPENDS:=+libuci +libubox +libstrophe +libbbf_api +libubus
DEPENDS:=+libuci +libubox +libstrophe +libbbf_api
endef
define Package/$(PKG_NAME)/description
@@ -41,7 +41,7 @@ TARGET_CFLAGS += \
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/xmppc $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/xmppd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib/bbfdm
$(CP) ./files/* $(1)/

View File

@@ -17,5 +17,5 @@ local proto="$(uci -q get network.$INTERFACE.proto)"
local ifname="$(uci -q get network.$INTERFACE.ifname)"
[ "${ifname:0:1}" == "@" ] && exit 0
/etc/init.d/xmppc reload &
/etc/init.d/xmppd reload &

View File

@@ -1,10 +1,13 @@
#!/bin/sh /etc/rc.common
# XMPP client software
# Copyright (C) 2020 iopsys Software Solutions AB
# Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
START=99
STOP=10
USE_PROCD=1
PROG="/usr/sbin/xmppc"
PROG="/usr/sbin/xmppd"
start_service() {
local xmpp_enable=`uci -q get xmpp.xmpp.enable`
@@ -16,7 +19,7 @@ start_service() {
local con_enable=`uci -q get xmpp.$con.enable`
local srv_enable=`uci -q get xmpp.$con_srv.enable`
if ([ "$serveralgorithm" = "DNS-SRV" ] && [ "$con_enable" = "1" ]) || ([ "$serveralgorithm" = "ServerTable" ] && [ "$con_enable" = "1" ] && [ "$srv_enable" = "1" ]); then
procd_open_instance xmppc
procd_open_instance
procd_set_param command "$PROG"
procd_set_param respawn "3" "7" "0"
procd_close_instance