Compare commits

..

102 Commits

Author SHA1 Message Date
hemlata
2c5df8adbf evoice :include Json-c for linking/ json files added for platforms brcm and airoha 2022-09-22 15:19:21 +02:00
Grzegorz Bielski
8f9afae970 evoice: 0.2.28 play audio file as confirmation of service 2022-09-21 15:00:54 +02:00
Jakob Olsson
079abea853 map-agent: 2.10.3.14 2022-09-21 12:22:16 +02:00
vdutta
83fb67c9a2 icwmp: 9.0.3 2022-09-20 18:52:07 +05:30
suvendhu
2391836769 twamp: 1.2.1 2022-09-20 13:01:22 +00:00
Jakob Olsson
d275e37d3b map-agent: 2.10.3.13 2022-09-20 11:02:22 +02:00
Wenpeng Song
773dc75531 evoice: 0.2.27
Set CallLog.{i}.Alias as "cpe-i" in libvoiceservice, i is the instance of the CallLog object
2022-09-20 07:53:26 +00:00
Amin Ben Ramdhane
a9dbead1b3 bbf: 6.8.33 2022-09-19 16:42:38 +01:00
Anjan Chanda
dd4d6e3d94 wfadatad: 2.10.0.0 2022-09-19 17:06:27 +02:00
Sukru Senli
105fbe6b1f sulu: 1.1.4 2022-09-19 15:36:54 +02:00
Sukru Senli
242a030470 sulu: 1.1.3 2022-09-16 17:19:35 +02:00
vdutta
7babfc6995 swmodd: 2.1.16 2022-09-16 19:53:12 +05:30
Jakob Olsson
b29e32fcb7 map-agent: 2.10.3.12 2022-09-16 16:15:32 +02:00
Sukru Senli
dcd2fb51c7 sulu: 1.1.2 2022-09-16 15:24:50 +02:00
vdutta
69d07fe12b swmodd: 2.1.15 2022-09-16 17:00:00 +05:30
Andreas Gnau
e4acdd529b gryphon-led-module: Do not hardcode BCM SDK kernel version
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
2022-09-16 11:05:10 +00:00
Amin Ben Ramdhane
5c375c19fc bbf: 6.8.32 2022-09-16 10:02:18 +01:00
vdutta
d00a3d313e swmodd: Fix compilation issue 2022-09-16 14:09:11 +05:30
hemlata
d8e1e75dd1 evoice: Refactoring of the implementation of CallStatus support for Line.X
Get TR-104 call status from SipHandler instead of CallCoord.
2022-09-16 10:06:25 +02:00
Sukru Senli
c1dae8f69f Revert "evoice: add endptmngr as conflict"
This reverts commit c79ff0f80f.
2022-09-16 08:18:20 +02:00
Amin Ben Ramdhane
64f08670b5 bbf: 6.8.31 2022-09-15 22:32:50 +01:00
Andreas Gnau
4890420a25 iop: ssh_upgrade: Use mktemp instead of tempfile
The tempfile has been deprecated for a long time and is no longer
available on RHEL and Fedora, use mktemp instead.

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

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

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

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

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

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

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm
PKG_VERSION:=6.8.19
PKG_VERSION:=6.8.33
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_VERSION:=5278cabfc34ec1a055dc7c3547ac7066df6b78e8
PKG_SOURCE_VERSION:=9bdcb1ac188c44fc2274bf01dd9dce46f572b967
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bulkdata
PKG_VERSION:=2.0.3
PKG_VERSION:=2.0.5
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git
PKG_SOURCE_VERSION:=85d7486a21a9eb0e0f345b587b3ac506edcb72fe
PKG_SOURCE_VERSION:=33a6648de9ee0af33c44518656b56b0a30b6c1ab
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -34,7 +34,7 @@ define Package/$(PKG_NAME)
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=BBF BulkData Collection
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json +zlib
endef
TARGET_CFLAGS += \

View File

@@ -14,7 +14,7 @@ LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=2f54f0af98d787a6e485bac9ef410d8ea47cf9c5
PKG_SOURCE_VERSION:=c5695bc92f7f22089c9a85d3e1f4dac7c12ca900
PKG_MIRROR_HASH:=skip
endif

View File

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

@@ -13,7 +13,7 @@ LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
PKG_SOURCE_VERSION:=ab61e54a457beae3a552c09e0bfaad06a32f34ea
PKG_SOURCE_VERSION:=0901382048bb7ce01fc1767fef75e54692f56743
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif

View File

@@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=evoice
PKG_VERSION:=0.2.23
PKG_VERSION:=0.2.29
LOCAL_DEV=0
LOCAL_DEV_EVOICE_DIR=~/voip/evoice
@@ -13,7 +13,7 @@ LOCAL_DEV_EVOICE_DIR=~/voip/evoice
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/evoice.git
PKG_SOURCE_VERSION:=2183f8a52720ff38548e6a17deac2d01a40b5caf
PKG_SOURCE_VERSION:=ee4e9e00ec1c54b41e15a3de38f6a733634622dd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -22,7 +22,6 @@ PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE_FILES:=LICENSE
PKG_BUILD_DEPENDS:=bbf
# All config variable that are passed to the make invocation, directly or
# indirectly. This ensures that the package is rebuilt on config-changes.
#PKG_CONFIG_DEPENDS:=CONFIG_TARGET_BOARD
@@ -34,7 +33,7 @@ define Package/$(PKG_NAME)
SUBMENU:=Telephony
TITLE:=Ensemble Voice
URL:=
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp +libopenssl\
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp +libopenssl +libjson-c\
+TARGET_iopsys_brcm63xx_arm:bcmkernel\
+TARGET_iopsys_econet:kmod-voip_driver\
+TARGET_iopsys_econet:voip_app
@@ -65,10 +64,12 @@ ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
-I$(IDIR)/bcm963xx/xchg/bos/publicInc\
-I$(IDIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
TRG=SVrgBcmFxs
JSONFILE=codecs_brcm.json
else ifeq ($(CONFIG_TARGET_iopsys_econet),y)
TARGET_PLATFORM=ECONET
TONES_INI_REQUIRED=y
TRG=SVrgMtekOwrt
JSONFILE=codecs_airoha.json
endif
# disable temporarily some not important warnings, force PIC
@@ -95,6 +96,9 @@ define Package/evoice/install
$(CP) ./files/* $(1)/
$(if $(TONES_INI_REQUIRED),,$(RM) $(1)/etc/evoice/tones.ini)
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(1)/lib/voice/$(JSONFILE) $(1)/lib/voice/codecs_evoice.json
$(RM) $(1)/lib/voice/codecs_brcm.json
$(RM) $(1)/lib/voice/codecs_airoha.json
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
$(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/evoice $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/libvoiceservice.so $(1)/usr/lib/bbfdm/

View File

@@ -131,7 +131,7 @@ config IncomingMap 'IncomingMap2'
option Line 'Line2'
config IncomingMap 'IncomingMap3'
option Enable '1'
option Enable '0'
option Extension 'Extension2'
option Line 'Line1'

View File

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

View File

@@ -0,0 +1,28 @@
{
"G.711ALaw": {
"BitRate": 64000,
"PacketizationPeriod": "20",
"SilenceSuppression": 0
},
"G.711MuLaw": {
"BitRate": 64000,
"PacketizationPeriod": "20",
"SilenceSuppression": 0
},
"G.726": {
"BitRate": 32000,
"PacketizationPeriod": "20",
"SilenceSuppression": 0
},
"G.729": {
"BitRate": 8000,
"PacketizationPeriod": "20",
"SilenceSuppression": 0
},
"G.722": {
"BitRate": 64000,
"PacketizationPeriod": "20",
"SilenceSuppression": 0
}
}

View File

@@ -0,0 +1,28 @@
{
"G.711ALaw": {
"BitRate": 64000,
"PacketizationPeriod": "30",
"SilenceSuppression": 1
},
"G.711MuLaw": {
"BitRate": 64000,
"PacketizationPeriod": "30",
"SilenceSuppression": 1
},
"G.726": {
"BitRate": 32000,
"PacketizationPeriod": "30",
"SilenceSuppression": 1
},
"G.729": {
"BitRate": 8000,
"PacketizationPeriod": "30",
"SilenceSuppression": 1
},
"G.722": {
"BitRate": 64000,
"PacketizationPeriod": "30",
"SilenceSuppression": 1
}
}

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,15 @@ MODULE_INCLUDE=-I$(PKG_BUILD_DIR)
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
LINUX_DIR:=$(BUILD_DIR)/bcmkernel/bcm963xx/kernel/linux-4.19
MODULES_SUBDIR:=lib/modules/4.19.225
# This assumes that the MODULES_SUBDIR set by OpenWrt is of the form
# lib/modules/4.19.235-abcdef where 4.19.235 is the version of our fake bcmlinux kernel
# and abcdef the git-commit.
# The kernel compiled by the Broadcom SDK has a uname -r of 4.19.235, i.e. without the git-commit.
# The assignment below removes the part after the - which puts modules in the right directory as
# long as the bcmlinux version matches the kernel version in the BCM SDK.
# So, this will only stop working in the time window where the BCM SDK has been updated
# but bcmlinux has not yet been updated.
MODULES_SUBDIR:=$(firstword $(subst -, ,$(MODULES_SUBDIR)))
TARGET_CROSS:=$(CONFIG_BRCM_ALT_TOOLCHAIN_BASE)/$(CONFIG_BRCM_ALT_ARM_TOOLCHAIN_TOPDIR)/bin/$(CONFIG_BRCM_ALT_ARM_TOOLCHAIN_PREFIX)-
ifeq ($(CONFIG_BCM_CHIP_ID),$(filter $(CONFIG_BCM_CHIP_ID),"63158" "6856" "6858"))

View File

@@ -1,24 +1,24 @@
#
# Copyright (C) 2020-2022 IOPSYS Software Solutions AB
#
# This is free software, licensed under the GNU General Public License v2.
# This is free software, licensed under the BSD-3-Clause
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=8.5.9
PKG_VERSION:=9.0.3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_VERSION:=5553a890ae29692d8e3c7e1b1734adb0722b020a
PKG_SOURCE_VERSION:=304db5eb064d89cf4e4df0bb81fa22b88933d602
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=GPLv2
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk

View File

@@ -32,7 +32,7 @@ config cpe 'cpe'
option amd_version '5'
# compression possible configs: InstanceNumber, InstanceAlias
option instance_mode 'InstanceNumber'
option session_timeout '60'
option session_timeout '300'
option notification '1'
option exec_download '0'
option periodic_notify_enable '1'

View File

@@ -469,6 +469,7 @@ reload_service() {
ret="0"
if [ "$enable_cwmp" = "0" ]; then
stop
start
return 0
fi

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905
PKG_VERSION:=4.10.6
PKG_VERSION:=4.10.7
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=a213ee8c1f2195bbce1756e033e7a774ef4b5d2a
PKG_SOURCE_VERSION:=b50f79061a95840d89a6129aa0a95aff82b5a1b7
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=skip

View File

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

View File

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

View File

@@ -331,7 +331,7 @@ function genconfig {
# Special handling for targets which use TARGET_DEVICES
case "$target" in
iopsys_ramips | iopsys_econet | iopsys_brcm63xx_arm)
iopsys_ramips | iopsys_econet | iopsys_mediatek | iopsys_brcm63xx_arm)
# This assumes the device name to be unique within one target,
# which is a fair assumption to make.
local mk_file="$(grep -Fx --files-with-matches "define Device/${BOARDTYPE}" "$target_config_path/../image/"*.mk)"

View File

@@ -17,6 +17,7 @@ function genconfig_min {
econet="target/linux/feeds/iopsys-econet"
x86="target/linux/feeds/iopsys-x86"
armvirt="target/linux/feeds/iopsys-armvirt"
mediatek="target/linux/feeds/iopsys-mediatek"
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
@@ -116,9 +117,11 @@ function genconfig_min {
iopsys_x86=$(cd $x86; ./genconfig)
[ -e $armvirt/genconfig ] &&
iopsys_armvirt=$(cd $armvirt; ./genconfig)
[ -e $mediatek/genconfig ] &&
iopsys_mediatek=$(cd $mediatek; ./genconfig)
if [ "$profile" == "LIST" ]; then
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_econet iopsys_x86 iopsys_armvirt; do
for list in iopsys_brcm63xx_arm iopsys_ramips iopsys_econet iopsys_x86 iopsys_armvirt iopsys_mediatek; do
echo "$list based boards:"
for b in ${!list}; do
echo -e "\t$b"
@@ -166,6 +169,14 @@ function genconfig_min {
return
fi
done
for p in $iopsys_mediatek; do
if [ $p == $profile ]; then
target="iopsys_mediatek"
target_config_path="$mediatek/config"
return
fi
done
}
git remote -v | grep -qE '(git@|ssh://)' && {
@@ -311,7 +322,7 @@ function genconfig_min {
# Special handling for targets which use TARGET_DEVICES
case "$target" in
iopsys_ramips | iopsys_econet | iopsys_brcm63xx_arm)
iopsys_ramips | iopsys_econet | iopsys_mediatek | iopsys_brcm63xx_arm)
# This assumes the device name to be unique within one target,
# which is a fair assumption to make.
local mk_file="$(grep -Fx --files-with-matches "define Device/${BOARDTYPE}" "$target_config_path/../image/"*.mk)"

View File

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

View File

@@ -13,5 +13,22 @@ config AGENT_ISLAND_PREVENTION
config AGENT_EASYMESH_R2_CERT
bool "Compile for WFA test bed"
config AGENT_EASYMESH_VENDOR_EXT
bool "Enable extra features through Easymesh vendor extension"
default y
config AGENT_EASYMESH_VENDOR_EXT_OUI_DEFAULT
string
default "\\\\x11\\\\x22\\\\x33"
config AGENT_EASYMESH_VENDOR_EXT_OUI
string "Vendor OUI in '\\\\xAB\\\\xCD\\\\xEF' format"
default AGENT_EASYMESH_VENDOR_EXT_OUI_DEFAULT
help
Extra features not covered by the base Easymesh specification can be
enabled through AGENT_EASYMESH_VENDOR_EXT. Please provide the Vendor's OUI
through which such features would be exposed.
endmenu
endif

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent
PKG_VERSION:=2.10.2.3
PKG_VERSION:=2.10.3.14
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=96a2a26176b9a478953f19bb8f2cb5d246ca3733
PKG_SOURCE_VERSION:=449eb907b121b7224cbfedcf51246e438f2b30d6
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=BSD-3-Clause
@@ -71,6 +71,11 @@ ifeq ($(CONFIG_AGENT_EASYMESH_R2_CERT),y)
TARGET_CFLAGS += -DEASYMESH_R2_CERT
endif
ifeq ($(CONFIG_AGENT_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=\\\"$(CONFIG_AGENT_EASYMESH_VENDOR_EXT_OUI)\\\"
endif
MAKE_PATH:=src
define Package/map-agent/install
@@ -78,6 +83,8 @@ define Package/map-agent/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/lib/wifi
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/script/* $(1)/lib/wifi/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mapagent $(1)/usr/sbin/
endef

View File

@@ -215,6 +215,10 @@ validate_agent_config() {
return 0
}
create_dir() {
mkdir -p /var/run/multiap
}
start_service() {
[ -f /usr/sbin/dynbhd ] && start_dynbhd_service
@@ -234,6 +238,7 @@ start_service() {
[ "$ts" -eq 1 ] && create_map #|| remove_map
procd_open_instance
create_dir
procd_set_param command "/usr/sbin/mapagent" "-d"
procd_set_param respawn
# procd_set_param stdout 1

View File

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

View File

@@ -1,129 +0,0 @@
#!/bin/sh
. /lib/functions.sh
AL_BRIDGE=${AL_BRIDGE-"br-lan"}
PRIMARY_VID=${PRIMARY_VID-1}
### Traffic Separation ###
dbg() {
logger -t traffic_separation $@
}
ts_sub() {
ts_usage() {
cat <<EOF
Usage: $0 [create|reload]
Traffic Separation related functions.
create vid - create vlan configuration with vlan_id
reload - reload network with new configuration
EOF
exit 1
}
ts_create() {
_net_setup() {
local vid=$1
local name="vlan${vid}"
local br_dev="${AL_BRIDGE/-/_}"
local tag=":t"
local self_flags="untagged"
[ -z "$(uci -q get network.${name})" ] || return
uci -q set network.${name}="bridge-vlan"
uci -q set network.${name}.name="${name}"
uci -q set network.${name}.device="$AL_BRIDGE"
uci -q set network.${name}.vlan="$vid"
[ "${vid}" = "${PRIMARY_VID}" ] && {
self_flags="untagged pvid"
tag=":*"
}
uci -q set network.${name}.flags="${self_flags}"
uci -q set network.${name}.local='1'
for port in $(uci -q get network.${br_dev}.ports) ; do
uci -q get network.${name}.ports | grep -q "${port}${tag}" && continue
uci -q add_list network.${name}.ports="${port}${tag}"
done
uci -q commit network
}
vid=$1
[ -n "$vid" ] || {
cat <<EOF
VID required to configure.
EOF
exit 1
}
logger -t vlan "setup ts vid $vid"
_net_setup ${vid}
echo 0 > /proc/pktfwd_dhd/enable
echo 0 > /proc/pktfwd_wl/enable
}
ts_reload() {
# TODO check it again
local dhcp_reload=$1
restart=""
bridge_verify_vid_mapping() {
local section=$1
check__port_vid() {
local port="$1"
local vlan="$2"
added=$(bridge vlan show dev $port | grep -w "$vlan")
if [ "$added" = "" ]; then
restart="1"
break
fi
}
config_get vlan "$section" vlan "0"
[ "$vlan" = "0" ] && continue
config_list_foreach "$section" "ports" check_port_vid "$vlan"
[ "$restart" = "1" ] && break
}
config_load network
config_foreach bridge_verify_vid_mapping bridge-vlan
[ -n "dhcp_reload" ] && /etc/init.d/dnsmasq reload
if [ "$restart" = "1" ]; then
dbg "trigger network restart"
/etc/init.d/network restart
else
ubus call uci commit '{"config":"network"}'
fi
/etc/init.d/firewall reload
#for sink in $(ubus list network.interface.sink*) ; do
# local sink_vlan=${sink/network.interface./}_vlan
#done
}
local func=$1
shift
case "$func" in
create) dbg "create $@"; ts_create $@;;
reload) dbg "reload $@"; ts_reload $@;;
--help|help) ts_usage;;
*) ts_usage; exit 1;;
esac
}

View File

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

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-controller
PKG_VERSION:=2.11.0.2
PKG_VERSION:=2.11.0.4
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=f74c6625967c6ab7f413a70fe72a876e5757ac22
PKG_SOURCE_VERSION:=a4a626539ede73c1c4eb1ad768331524a8ee9ce8
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
@@ -49,6 +49,10 @@ ifeq ($(CONFIG_CONTROLLER_SYNC_DYNAMIC_CNTLR_CONFIG),y)
TARGET_CFLAGS += -DCONTROLLER_SYNC_DYNAMIC_CNTLR_CONFIG
endif
ifeq ($(CONFIG_CONTROLLER_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=\\\"$(CONFIG_CONTROLLER_EASYMESH_VENDOR_EXT_OUI)\\\"
endif
define Package/map-controller/install
$(INSTALL_DIR) $(1)/etc
$(CP) ./files/* $(1)/

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

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

View File

@@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology
PKG_VERSION:=2.5.1.3
PKG_VERSION:=2.5.1.4
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=01a58d068adea4636e984291f39d7694ea30860c
PKG_SOURCE_VERSION:=488ce1ce576b57c9b3c4d7c034969bf65e66216f
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
@@ -31,6 +31,10 @@ define Package/map-topology
TITLE:=Utility to build topology of a multi-AP network
endef
define Package/map-topology/config
source "$(SOURCE)/Config.in"
endef
TARGET_CFLAGS += \
-Wno-error=deprecated-declarations \
-I$(STAGING_DIR)/usr/include \
@@ -44,6 +48,11 @@ endef
MAKE_PATH:=src
ifeq ($(CONFIG_TOPOLOGYD_EASYMESH_VENDOR_EXT),y)
TARGET_CFLAGS += -DEASYMESH_VENDOR_EXT_OUI=\\\"$(CONFIG_TOPOLOGYD_EASYMESH_VENDOR_EXT_OUI)\\\"
endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/map-topology/* $(PKG_BUILD_DIR)/

View File

@@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=obuspa
PKG_VERSION:=5.0.0.20
PKG_VERSION:=5.0.0.21
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)

View File

@@ -5,14 +5,14 @@
fix_stomp_section() {
local encryption
config_get_bool encryption $1 encryption "1"
uci_set obuspa $1 encryption ""
uci_set obuspa $1 EnableEncryption "$encryption"
config_get_bool encryption $1 encryption ""
if [ -n "${encryption}" ]; then
uci_set obuspa $1 encryption ""
uci_set obuspa $1 EnableEncryption "$encryption"
fi
}
# Copy defaults by the factory to the cwmp UCI user section.
# fix the stomp encryption parameter
config_load obuspa
config_foreach fix_stomp_section stomp
uci_commit
# No need for commit here, it is done by uci_apply_defaults().

View File

@@ -30,17 +30,25 @@ populate_config_from_db() {
}
populate_config_from_device_tree() {
for port in $(find /proc/device-tree/ -name "port@*"); do
port="$(cat $port/label)"
for path in $(find /proc/device-tree/ -name "port@*"); do
port="$(cat $path/label)"
[ -n "$port" ] || continue
[ "$port" = "cpu" ] && continue
speed=1000
if [ -e "$path/phy-mode" ]; then
phymode="$(cat $path/phy-mode)"
case "$phymode" in
10000*) speed=10000 ;;
2500*) speed=2500 ;;
esac
fi
PORT="$(echo $port | tr '[a-z]' '[A-Z]')"
uci add ports ethport
uci rename ports.@ethport[-1]="$PORT"
uci set ports.@ethport[-1].enabled=1
uci set ports.@ethport[-1].name="$PORT"
uci set ports.@ethport[-1].ifname="$port"
uci set ports.@ethport[-1].speed=1000
uci set ports.@ethport[-1].speed="$speed"
uci set ports.@ethport[-1].duplex="full"
uci set ports.@ethport[-1].autoneg=1
uci set ports.@ethport[-1].eee=0
@@ -65,7 +73,7 @@ fi
touch /etc/config/ports
if [ -f /sbin/db ] && [ -f /etc/board-db/config/hw ]; then
if [ -f /sbin/db -a -n "$(db get hw.board.ethernetPortOrder 2>/dev/null)" ]; then
populate_config_from_db
elif [ -d /proc/device-tree/ ]; then
populate_config_from_device_tree

80
skopeo/Makefile Normal file
View File

@@ -0,0 +1,80 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=skopeo
PKG_VERSION:=1.9.2
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_NAME:=skopeo
PKG_SOURCE_URL:=https://github.com/containers/skopeo.git
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION)-$(PKG_RELEASE).tar.gz
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
HOST_BUILD_DEPENDS:=golang/host
HOST_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
GO_PKG:=github.com/containers/skopeo
GO_PKG_BUILD_PKG:=github.com/containers/skopeo/cmd/skopeo
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
GOLANG_PACKAGE_MK:=$(wildcard $(TOPDIR)/feeds/*/lang/golang/golang-package.mk)
GOLANG_HOST_PACKAGE_MK:=$(wildcard $(TOPDIR)/feeds/*/lang/golang/golang-host-build.mk)
# verify that there is only one single file returned
ifneq (1,$(words $(GOLANG_PACKAGE_MK)))
ifeq (0,$(words $(GOLANG_PACKAGE_MK)))
$(error did not find golang-package.mk in any feed)
else
$(error found multiple golang-package.mk files in the feeds)
endif
else
$(info found golang-package.mk at $(GOLANG_PACKAGE_MK))
endif
include $(GOLANG_PACKAGE_MK)
include $(GOLANG_HOST_PACKAGE_MK)
define Package/skopeo
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Command line utility for container image management
URL:=https://github.com/containers/skopeo
DEPENDS:=$(GO_ARCH_DEPENDS)
endef
define Package/skopeo/description
skopeo is a command line utility that performs various operations on container images and image repositories.
endef
define Package/skopeo/conffiles
/etc/containers/policy.json
endef
GO_PKG_TAGS=exclude_graphdriver_devicemapper,exclude_graphdriver_btrfs,containers_image_openpgp
GO_PKG_BUILD_VARS += GO111MODULE=auto
define Build/Compile
$(call GoPackage/Build/Compile)
$(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
endef
define Package/skopeo/install
$(call GoPackage/Package/Install/Bin,$(1))
$(INSTALL_DIR) $(1)/etc/containers
$(INSTALL_DATA) ./files/etc/containers/policy.json $(1)/etc/containers/policy.json
endef
$(eval $(call GoBinHostBuild))
$(eval $(call HostBuild))
$(eval $(call GoBinPackage,skopeo))
$(eval $(call BuildPackage,skopeo))

View File

@@ -0,0 +1,15 @@
{
"default": [
{
"type": "insecureAcceptAnything"
}
],
"transports":
{
"docker-daemon":
{
"": [{"type":"insecureAcceptAnything"}]
}
}
}

View File

@@ -13,7 +13,7 @@ menu "SULU_CORE"
config SULU_CORE_VERSION
string "SULU repo version"
default "ef0489349703c5c02f435e46cf971b5435eb0141"
default "944f4e2217e478c04f1ef56ae67c66d82ece7994"
endmenu
menu "SULU_PLUGIN_LCM"
@@ -35,7 +35,7 @@ menu "SULU_PLUGIN_LCM"
config SULU_PLUGIN_LCM_VERSION
depends on SULU_PLUGIN_LCM_ENABLE
string "Version"
default "ae0da97828665aa953459c7f49ed26c656819d4d"
default "f8a96f1c55904082c0658ee63aebe1e67a097f42"
endmenu
menu "SULU_PLUGIN_MULTIAP"
@@ -57,7 +57,7 @@ menu "SULU_PLUGIN_MULTIAP"
config SULU_PLUGIN_MULTIAP_VERSION
depends on SULU_PLUGIN_MULTIAP_ENABLE
string "Version"
default "0ee8a4dd07d722d06dd7617d2debf138da6df8b7"
default "89b4e4b95d3a94b88782f5cdc9d1eafd5728a1f7"
endmenu
menu "SULU_THEME_IOPSYS"

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=sulu-builder
PKG_VERSION:=1.0.14
PKG_VERSION:=1.1.4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu-builder.git
PKG_SOURCE_VERSION:=90cec082b118a9503fd167bd5363731945a0127c
PKG_SOURCE_VERSION:=ca38b2086cee7ba83b41eec56539e9432271a349
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=sulu
PKG_VERSION:=1.0.14
PKG_VERSION:=1.1.4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu.git
PKG_SOURCE_VERSION:=90cec082b118a9503fd167bd5363731945a0127c
PKG_SOURCE_VERSION:=ca38b2086cee7ba83b41eec56539e9432271a349
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz

22
swmodd/Config.in Normal file
View File

@@ -0,0 +1,22 @@
menu "Configuration"
depends on PACKAGE_swmodd
config SWMODD_LXC_SUPPORT
bool "Handles LXC based containers"
default n
depends on PACKAGE_swmodd
select PACKAGE_liblxc
config SWMODD_OCI_SUPPORT
bool "Handles OCI containers"
default y
depends on PACKAGE_swmodd
select PACKAGE_crun
config SWMODD_REGISTRY_PULL_SUPPORT
bool "Add support to pull images from container image registries (i.e: docker.io, quay.io)"
default n
depends on PACKAGE_swmodd
select PACKAGE_skopeo
select PACKAGE_umoci
endmenu

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=swmodd
PKG_VERSION:=2.1.7
PKG_VERSION:=2.1.16
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=f673871b6689b32d726fe633ace5f75de6d5b99f
PKG_SOURCE_VERSION:=5124ea8051c06e8c3563b384660b08db199c93eb
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/swmodd.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -30,15 +30,27 @@ define Package/swmodd
SUBMENU:=TRx69
TITLE:= Software Modules Daemon
DEPENDS:=+libuci +libubox +ubus +libuuid +opkg +libcurl \
+PACKAGE_liblxc:liblxc +cgroupfs-mount \
+@BUSYBOX_CONFIG_BUSYBOX +@BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT \
+@BUSYBOX_CONFIG_SCRIPT
+PACKAGE_liblxc:liblxc +@BUSYBOX_CONFIG_BUSYBOX \
+@BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT +@BUSYBOX_CONFIG_SCRIPT \
+swmodd-cgroup +jq
endef
define Package/swmodd/description
Software module daemon to manage software/deployment units using TR181 datamodel.
endef
define Package/swmodd/config
source "$(SOURCE)/Config.in"
endef
define Package/swmodd-cgroup
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:= Cgroup mount handler for Software modules daemon
DEPENDS:=+@CONFIG_KERNEL_CGROUPS
endef
TARGET_CFLAGS += \
-D_GNU_SOURCE \
-Wall -Werror
@@ -85,4 +97,10 @@ ifeq ($(CONFIG_PACKAGE_crun),y)
endif
endef
define Package/swmodd-cgroup/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/etc/init.d/swmodd_cgroup $(1)/etc/init.d/swmodd_cgroup
endef
$(eval $(call BuildPackage,swmodd-cgroup))
$(eval $(call BuildPackage,swmodd))

View File

@@ -9,33 +9,28 @@ log() {
echo "${@}"|logger -t crun.init -p info
}
validate_container_section() {
uci_validate_section swmodd du_eu_assoc "${1}" \
'name:string' \
'type:string' \
'autostart:bool:1' \
'du_status:string' \
'requested_state:string'
}
is_container_running() {
crun list |tail -n +2|grep -wq "^${1}"
return $?
}
configure_crun_container() {
local name type autostart du_status requested_state
local name type autostart du_status requested_state url username password
local BRIDGE BUNDLE
local RUNNER="/etc/swmodd/run.sh"
validate_container_section "${1}" || {
log "Validation of container section failed"
return 0;
}
BUNDLE="${2}"
BRIDGE="${3}"
config_get name ${1} name ""
config_get type ${1} type ""
config_get_bool autostart ${1} autostart 1
config_get du_status ${1} du_status ""
config_get requested_state ${1} requested_state ""
config_get url ${1} url ""
config_get username ${1} username ""
config_get password ${1} password ""
if [ -z "${name}" ] || [ -z "${type}" ] || [ -z "${du_status}" ]; then
return 0;
fi
@@ -44,24 +39,65 @@ configure_crun_container() {
return 0;
fi
if [ ! -d "${BUNDLE:?}/${name:?}" ]; then
log "Crun container {${BUNDLE:?}/${name:?}} not available"
return 0;
if [ "${du_status}" == "Installing" ]; then
local result
log "Pull image from registry"
uci_set ocicontainer ${1} du_status Installing_start
uci_set ocicontainer ${1} username ""
uci_set ocicontainer ${1} password ""
result=$(${RUNNER} -b "${BUNDLE}" -n "${name}" -r "${url}" -l "${username}:${password}")
if [ "$?" -eq 0 ]; then
result=$(cat ${BUNDLE}/${name}/config.json |jq ".annotations.org_opencontainers_image_description")
if [ "${result}" != "null" ]; then
uci_set ocicontainer ${1} description "${result}"
fi
result=$(cat ${BUNDLE}/${name}/config.json |jq ".annotations.org_opencontainers_image_vendor")
if [ "${result}" != "null" ]; then
uci_set ocicontainer ${1} vendor "${result}"
fi
result=$(cat ${BUNDLE}/${name}/config.json |jq ".annotations.org_opencontainers_image_version")
if [ "${result}" != "null" ]; then
uci_set ocicontainer ${1} version "${result}"
fi
uci_set ocicontainer ${1} du_status Installing_success
du_status="Installed"
else
uci_set ocicontainer ${1} du_status Installing_failed
uci_set ocicontainer ${1} fault_string "${result}"
return 0;
fi
fi
if [ "${du_status}" == "Uninstalling" ] || [ "${du_status}" == "Uninstalled" ]; then
if [ "${du_status}" == "Uninstalling" ]; then
ubus call service delete "{\"name\":\"crun\",\"instance\":\"${name}\"}"
crun kill --all "${name}" 9
if is_container_running "${name}"; then
crun kill --all "${name}" 9
fi
${RUNNER} -c -n "${name}"
if [ -d "${BUNDLE:?}/${name:?}" ]; then
rm -rf "${BUNDLE:?}/${name:?}"
fi
# If directory still exists then uninstall failed
if [ -d "${BUNDLE}/${name}" ]; then
uci_set ocicontainer ${1} du_status Uninstalling_failed
uci_set ocicontainer ${1} fault_string "Failed to remove ${BUNDLE}/${name}"
else
uci_set ocicontainer ${1} du_status Uninstalling_success
fi
# Delete the uci config section after uninstall
uci_remove swmodd "${1}"
log "CRUN container ${name} removed"
return 0;
fi
if [ ! -d "${BUNDLE:?}/${name:?}" ]; then
log "Crun container {${BUNDLE:?}/${name:?}} not available"
return 0;
fi
if [ "${du_status}" != "Installed" ]; then
return 0;
fi
@@ -78,9 +114,25 @@ configure_crun_container() {
if [ "${requested_state}" == "Idle" ]; then
crun pause "${name}"
elif [ "${requested_state}" == "Active" ]; then
${RUNNER} -u -n "${name}" -b "${BRIDGE}"
${RUNNER} -u -n "${name}" -i "${BRIDGE}"
crun resume "${name}"
fi
else
${RUNNER} -U -b "${BUNDLE}" -n "${name}"
result=$(cat ${BUNDLE}/${name}/config.json |jq ".annotations.org_opencontainers_image_description")
if [ "${result}" != "null" ]; then
uci_set ocicontainer ${1} description "${result}"
fi
result=$(cat ${BUNDLE}/${name}/config.json |jq ".annotations.org_opencontainers_image_vendor")
if [ "${result}" != "null" ]; then
uci_set ocicontainer ${1} vendor "${result}"
fi
result=$(cat ${BUNDLE}/${name}/config.json |jq ".annotations.org_opencontainers_image_version")
if [ "${result}" != "null" ]; then
uci_set ocicontainer ${1} version "${result}"
fi
fi
procd_open_instance "${name}"
@@ -102,7 +154,7 @@ start_service() {
fi
config_load swmodd
config_get bundle globals bundle_root ""
config_get bundle globals oci_bundle_root ""
config_get bridge globals lan_bridge "br-lan"
if [ -z "${bundle}" ] || [ -z "${bridge}" ]; then
@@ -110,9 +162,14 @@ start_service() {
return 0;
fi
mkdir -p "${bundle}"
config_foreach configure_crun_container du_eu_assoc "${bundle}" "${bridge}"
uci_commit
if [ -f "${bundle}/ocicontainer" ]; then
UCI_CONFIG_DIR="${bundle}"
config_load ocicontainer
config_foreach configure_crun_container du_eu_assoc "${bundle}" "${bridge}"
uci_commit
# Add a timer for DuStateChange!
(sleep 5 && ubus -t 5 call swmodules reload) &
fi
}
stop_service() {

View File

@@ -12,28 +12,68 @@ validate_globals_section()
'enabled:bool:1' \
'debug:bool:false' \
'log_level:uinteger:1' \
'bundle_root:string' \
'lxc_bundle_root:string' \
'oci_bundle_root:string' \
'sock:string'
}
start_service() {
local enabled debug log_level sock bundle_root
start_lxc_container() {
config_get name "${1}" name ""
config_get type "${1}" type ""
config_get autostart "${1}" autostart "0"
config_get timeout "${1}" timeout "300"
# creating fallback shared mount-point
mkdir -p /tmp/swmodd_dw
if [ -z "${name}" ] || [ -z "${type}" ]; then
return 0;
fi
if [ "${type}" != "lxc" ]; then
return 0;
fi
state=$(lxc-ls -f | tail -n +2 | grep -w "${name}" | cut -d " " -f 2)
if [ -z "${state}" ]; then
return 0;
fi
if [ "${autostart}" == "0" ]; then
if [ "${state}" == "RUNNING" ]; then
# stop the container if running
lxc-stop -n "${name}" -t "${timeout}" &
return 0;
elif [ "${state}" == "FROZEN" ]; then
# first unfreeze then stop
lxc-unfreeze -n "${name}"
lxc-stop -n "${name}" -t "${timeout}" &
return 0;
fi
else
if [ "${state}" == "FROZEN" ]; then
# unfreeze the container
lxc-unfreeze -n "${name}"
elif [ "${state}" == "STOPPED" ]; then
# start the container
lxc-start -n "${name}"
return 0;
fi
fi
}
start_service() {
local enabled debug log_level sock lxc_bundle_root oci_bundle_root
config_load swmodd
validate_globals_section || {
log "Validation of uci globals failed"
return 1;
}
[ "${enabled}" -eq 0 ] && return 0
[ -z "${bundle_root}" ] && return 0
# Create the bundle paths if not present
[ -n "${lxc_bundle_root}" ] && mkdir -p "${lxc_bundle_root}"
[ -n "${oci_bundle_root}" ] && mkdir -p "${oci_bundle_root}"
mkdir -p "${bundle_root}"
procd_open_instance swmodd
procd_set_param command ${PROG}
@@ -49,19 +89,18 @@ start_service() {
procd_set_param respawn
procd_close_instance
}
stop_service() {
service_stop ${PROG}
# Auto-start the lxc containers
if [ -f "${lxc_bundle_root}/lxccontainer" ]; then
UCI_CONFIG_DIR="${lxc_bundle_root}"
config_load lxccontainer
config_foreach start_lxc_container container
fi
}
reload_service() {
if ubus list swmodules >/dev/null 2>&1; then
ubus -t 20 call swmodules reload
else
stop
start
fi
stop
start
}
service_triggers() {

View File

@@ -0,0 +1,56 @@
#!/bin/sh /etc/rc.common
START=01
log() {
echo "swmodd_cgroup: ${@}" >/dev/console
}
cgroup_remounting_required()
{
if ! mount |grep -q '/sys/fs/cgroup '; then
return 1;
fi
if grep -v '^#' /etc/fstab | grep -q cgroup; then
log "fstab mounted system, remounting of cgroup not required"
return 1
fi
if [ ! -d /sys/fs/cgroup ] && [ ! -e /proc/cgroups ]; then
log "cgroup fs not found"
return 1
fi
umount /sys/fs/cgroup
return 0;
}
mount_cgroup()
{
if ! cgroup_remounting_required; then
log "cgroup remounting not required"
return 1
fi
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
cd /sys/fs/cgroup
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
mkdir -p $sys
if ! mountpoint -q $sys; then
if ! mount -n -t cgroup -o $sys cgroup $sys; then
rm -f $sys || true
fi
fi
done
if [ -e /sys/fs/cgroup/memory/memory.use_hierarchy ]; then
echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy
fi
}
boot()
{
mount_cgroup
}

View File

@@ -4,17 +4,23 @@ VETHNAME=""
log() {
echo "${@}"|logger -t crun.runner -p info
echo "${@}"
}
if ! command -v crun >/dev/null 2>&1;then
log "CRUN binary not present"
return 1
fi
check_binary() {
if [ -z "${1}" ]; then
return 0;
fi
if ! command -v script >/dev/null 2>&1;then
log "script not present"
return 1
fi
if ! command -v "${1}" >/dev/null 2>&1;then
log "${1} not present in system"
exit 1
fi
return 0;
}
check_binary crun
check_binary script
get_veth_name() {
local name
@@ -59,6 +65,12 @@ setup_container_network() {
ip link set dev "${VETHNAME}" up
# Link with host bridge
brctl addif "${bridge_name}" "${VETHNAME}"
# Get Ip from bridge and make the link ready
ip netns exec "$name" udhcpc -i eth0 -x hostname:"CRUN-${name}"
if [ "${du_status}" != "Installed" ]; then
return 0;
fi
}
run_container() {
@@ -78,16 +90,138 @@ run_container() {
script -q -c "crun run -b ${bundle}/${name} ${name}" /dev/null
}
update_network_ns() {
local type
json_select $2
json_get_var type type
if [ "${type}" == "network" ]; then
json_add_string path "/var/run/netns/${NAME}"
break;
fi
json_select ..
}
nginx_hack() {
# replace nginx user to root user
if [ -f "${BUNDLE:?}/${NAME:?}/rootfs/etc/nginx/nginx.conf" ]; then
sed -i 's/^user .*;$/user root;/' "${BUNDLE}/${NAME}/rootfs/etc/nginx/nginx.conf"
fi
}
update_config_json() {
if [ ! -f "${BUNDLE:?}/${NAME:?}/config.json" ]; then
log "config.json not found or bundle missing"
exit 0;
fi
if [ -f "/usr/share/libubox/jshn.sh" ]; then
. /usr/share/libubox/jshn.sh
else
log "jshn.sh missing in the system"
exit 1;
fi
cd "${BUNDLE}/${NAME}"
if cat config.json |jq '.linux.namespaces[] |select (.type == "network") |.path' |grep -q ${NAME}; then
exit 0;
fi
mv config.json config_orig.json
json_init
json_load_file "config_orig.json"
json_select linux
json_for_each_item update_network_ns namespaces
json_dump >config.json
nginx_hack
}
pull_image_from_registry() {
local temp disksize exsize
if [ -z "${BUNDLE}" -o -z "${NAME}" -o -z "${REGURL}" ]; then
log "Information missing for installation"
exit 1
fi
if [ -d "${BUNDLE}/${NAME}" ]; then
log "Container with same name already present"
exit 1
fi
check_binary skopeo
check_binary umoci
temp="$(mktemp -d)"
if [ ! -d "${temp}" ]; then
log "Failed to create temp directory"
exit 1
fi
cd "${temp}"
OPTS=""
INSPECT_OPT=""
if [ "${#LOGIN}" -gt 3 ]; then
OPTS="--src-creds ${LOGIN}"
INSPECT_OPT="--creds ${LOGIN}"
fi
if ! skopeo --command-timeout 4m copy ${OPTS} ${REGURL} oci:${NAME}_tmp:latest >/dev/null 2>&1; then
log "Failed to download image"
cd -
rm -rf "${temp}"
exit 1
fi
if ! umoci unpack --image ${NAME}_tmp:latest ${NAME} >/dev/null 2>&1; then
log "Failed to unpack image"
cd -
rm -rf "${temp}"
exit 1
fi
rm -rf "${NAME}_tmp"
if [ ! -f "${NAME}/config.json" ]; then
log "Failed to pull the image config missing"
cd -
rm -rf "${temp}"
exit 1
fi
# Check disk available space before copy
disksize=$(df -P -k ${BUNDLE} |tail -n +2 |awk '{print $4}')
exsize=$(du -s ${temp} |awk '{print $1}')
if [ "${disksize}" -lt "${exsize}" ]; then
log "Disk space ${disksize} less that required ${exists}"
cd -
rm -rf "${temp}"
exit 1
fi
mv ${NAME} ${BUNDLE}/
if [ "$?" -ne 0 ]; then
log "Failed ${name} move in ${BUNDLE}"
cd -
rm -rf "${temp}"
rm -rf ${BUNDLE}/${NAME}
exit 1
fi
cd -
rm -rf "${temp}"
update_config_json
}
clean=0
net_update=0
while getopts b:n:i:cu options
update_json=0
while getopts b:n:i:r:l:cuU options
do
case "${options}" in
b) BUNDLE=${OPTARG};;
n) NAME=${OPTARG};;
i) BRIDGE=${OPTARG};;
r) REGURL=${OPTARG};;
l) LOGIN=${OPTARG};;
c) clean=1;;
u) net_update=1;;
U) update_json=1;;
*) log "Invalid options";;
esac
done
@@ -97,6 +231,16 @@ if [ -z "${NAME}" ]; then
return 0;
fi
if [ "${update_json}" -eq 1 ]; then
update_config_json
return 0;
fi
if [ -n "${REGURL}" ]; then
pull_image_from_registry
return 0;
fi
if [ "$clean" -eq 1 ]; then
clean_container_network "${NAME}"
return 0;

View File

@@ -2,20 +2,42 @@
. /lib/functions.sh
# if bundle_root not define in swmodd, update it with lxc path
lxc=""
bundle=""
lxc_bundle=""
oci_bundle=""
if [ -f "/etc/lxc/lxc.conf" ]; then
lxc=$(cat /etc/lxc/lxc.conf |grep "lxc.lxcpath"| cut -d "=" -f 2)
fi
config_load swmodd
config_get bundle globals bundle_root ""
if [ -z "${bundle}" ] && [ -n "${lxc}" ]; then
uci_set swmodd globals bundle_root ${lxc}
config_get lxc_bundle globals lxc_bundle_root ""
config_get oci_bundle globals oci_bundle_root ""
if [ -n "${lxc_bundle}" ]; then
# if lxc_bundle_root define in swmodd, update it in lxc path
mkdir -p /etc/lxc
echo "lxc.lxcpath = ${lxc_bundle}" > /etc/lxc/lxc.conf
elif [ -n "${lxc}" ]; then
# if lxc_bundle_root not define in swmodd, update it with lxc path
uci_set swmodd globals lxc_bundle_root ${lxc}
uci_commit
elif [ -z "${bundle}" ]; then
uci_set swmodd globals bundle_root "/tmp/"
else
mkdir -p /etc/lxc
echo "lxc.lxcpath = /srv/" > /etc/lxc/lxc.conf
uci_set swmodd globals lxc_bundle_root "/srv/"
uci_commit
fi
if [ -z "${oci_bundle}" ] && [ -n "${lxc_bundle}" ]; then
# if oci_bundle_root not defined in swmodd, update it with lxc_bundle_root if defined
uci_set swmodd globals oci_bundle_root ${lxc_bundle}
uci_commit
elif [ -z "${oci_bundle}" ] && [ -n "${lxc}" ]; then
# if oci_bundle_root not defined in swmodd, update it with lxc path
uci_set swmodd globals oci_bundle_root ${lxc}
uci_commit
elif [ -z "${oci_bundle}" ]; then
uci_set swmodd globals oci_bundle_root "/srv/"
uci_commit
fi

View File

@@ -6,13 +6,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=twamp
PKG_VERSION:=1.2.0
PKG_VERSION:=1.2.1
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/twamp-light.git
PKG_SOURCE_VERSION:=4dfc8609fb0cefaaf9e86b559b1e10488117cf07
PKG_SOURCE_VERSION:=b0111c35ff4908edd82c5d5f4a3c0d6809605b94
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -41,7 +41,7 @@ TARGET_CFLAGS += \
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/twamp/* $(PKG_BUILD_DIR)/
$(CP) -rf ~/git/twamp-light/* $(PKG_BUILD_DIR)/
endef
endif
@@ -58,6 +58,7 @@ define Package/$(PKG_NAME)/install
$(INSTALL_BIN) ./files/etc/init.d/twampd $(1)/etc/init.d/twampd
$(INSTALL_BIN) ./files/etc/firewall.twamp $(1)/etc/firewall.twamp
$(INSTALL_BIN) ./files/etc/uci-defaults/92-twampfirewall $(1)/etc/uci-defaults/92-twampfirewall
$(INSTALL_BIN) ./files/etc/uci-defaults/93-twamp_fix_reflector $(1)/etc/uci-defaults/93-twamp_fix_reflector
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

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

View File

@@ -29,7 +29,7 @@ function configure_firewall()
function delete_rule()
{
while iptables -w 1 -L zone_${1}_input --line-numbers | grep "TWAMP reflector port" > /dev/null; do
while iptables -w 1 -L zone_${1}_input --line-numbers | grep "TWAMP reflector port" > /dev/null 2>&1; do
iptables -w 1 -D zone_${1}_input $(iptables -w 1 -L zone_${1}_input --line-numbers | grep "TWAMP reflector port" | head -1|awk '{print $1}');
done
}

View File

@@ -0,0 +1,22 @@
#!/bin/sh
. /lib/functions.sh
function rename_section()
{
local enable inst
config_get interface ${1} interface ""
if [ -z "${interface}" ]; then
return 0
fi
inst="$(echo ${1}|cut -d '_' -f 2)"
uci_rename twamp ${1} "${interface}_${inst}"
}
config_load twamp
config_foreach rename_section twamp_reflector
exit 0

View File

@@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=umoci
PKG_VERSION:=0.0.1
PKG_RELEASE:=1
PKG_VERSION:=0.4.7
PKG_RELEASE:=$(AUTORELEASE)
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE
@@ -10,7 +10,7 @@ PKG_SOURCE_PROTO:=git
PKG_SOURCE_NAME:=umoci
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/opencontainers/umoci.git
PKG_SOURCE_VERSION:=2cec49f54b72684ef170f11c708c56140f298bf7
PKG_SOURCE_VERSION:=17f38511d61846e2fb8ec01a1532f3ef5525e71d
PKG_MIRROR_HASH:=skip
PKG_BUILD_DEPENDS:=golang/host
@@ -18,11 +18,12 @@ PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
GO_PKG:=github.com/opencontainers/umoci/
GO_PKG_LDFLAGS_X:=main.gitCommit=$(PKG_SOURCE_VERSION) main.version=$(PKG_SOURCE_VERSION)
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
GOLANG_PACKAGE_MK:=$(wildcard $(TOPDIR)/feeds/*/lang/golang/golang-package.mk)
GOLANG_HOST_PACKAGE_MK:=$(wildcard $(TOPDIR)/feeds/*/lang/golang/golang-host-build.mk)
# verify that there is only one single file returned
ifneq (1,$(words $(GOLANG_PACKAGE_MK)))
@@ -36,6 +37,7 @@ $(info found golang-package.mk at $(GOLANG_PACKAGE_MK))
endif
include $(GOLANG_PACKAGE_MK)
include $(GOLANG_HOST_PACKAGE_MK)
define Package/umoci
SECTION:=utils
@@ -61,5 +63,7 @@ define Package/umoci/install
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/umoci $(1)/usr/bin
endef
$(eval $(call GoBinHostBuild))
$(eval $(call HostBuild))
$(eval $(call GoBinPackage,umoci))
$(eval $(call BuildPackage,umoci))

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wfadatad
PKG_VERSION:=2.8.0.1
PKG_VERSION:=2.10.0.0
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=01fd303670eef525e35c5337c4cf15418588273f
PKG_SOURCE_VERSION:=b75a1271c718e4fb2a45b5ac4fe73d192c864713
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfadatad.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wifimngr
PKG_VERSION:=14.2.0
PKG_VERSION:=14.2.3
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=d12e9194fad6cf925ec702bb125c2e6d813db2d0
PKG_SOURCE_VERSION:=f57015819a20d8d172899b1831fa29a9578011e8
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