mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-01-08 22:01:23 +08:00
Compare commits
281 Commits
mxml
...
map-bkhaul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d1e06ec6c | ||
|
|
387be147e6 | ||
|
|
75988519f5 | ||
|
|
f46f994ce2 | ||
|
|
40a43b643c | ||
|
|
80fe362716 | ||
|
|
72b385e50f | ||
|
|
853f895c6d | ||
|
|
03b1576b8d | ||
|
|
6e738b7fcb | ||
|
|
5b3e5d157d | ||
|
|
018a530f35 | ||
|
|
12d3905280 | ||
|
|
47b176a94c | ||
|
|
12ff0f953d | ||
|
|
47a250754f | ||
|
|
5b0e926cd9 | ||
|
|
18453ce68e | ||
|
|
12645e7525 | ||
|
|
73e354c8cc | ||
|
|
abdd812601 | ||
|
|
e56c279786 | ||
|
|
e01fbf3fad | ||
|
|
22b37efad9 | ||
|
|
5628a1bee6 | ||
|
|
6d9c8d1090 | ||
|
|
dee5ea0da3 | ||
|
|
0c6dad2c58 | ||
|
|
f9cd9c627e | ||
|
|
31f03a7b47 | ||
|
|
50d2408ddb | ||
|
|
79f5bbd0cf | ||
|
|
58fdac62b0 | ||
|
|
32192f5423 | ||
|
|
35bb02b726 | ||
|
|
77536709f0 | ||
|
|
e67a5e505f | ||
|
|
cd7826de33 | ||
|
|
c09a4a0ca5 | ||
|
|
49e7f2e349 | ||
|
|
44e614d8e2 | ||
|
|
dba358a542 | ||
|
|
6688812576 | ||
|
|
9b14d0574f | ||
|
|
82bf3bbba4 | ||
|
|
311273865d | ||
|
|
e64714e538 | ||
|
|
f29ade1e60 | ||
|
|
ddf6d7ba32 | ||
|
|
803be5fcad | ||
|
|
08abbdfe5b | ||
|
|
3ad949442c | ||
|
|
6b37f2fccb | ||
|
|
8d3aa2aa60 | ||
|
|
9f5d5eb347 | ||
|
|
2d9a47073b | ||
|
|
dc0ab5dbd3 | ||
|
|
f513b5ba46 | ||
|
|
aa5e98a35c | ||
|
|
051c6f2cc1 | ||
|
|
aa2a78e211 | ||
|
|
063d20932a | ||
|
|
59752df3d4 | ||
|
|
66f28e376d | ||
|
|
fbb6a84da8 | ||
|
|
bcd8b4f010 | ||
|
|
e98ef22bc5 | ||
|
|
c45938f5ad | ||
|
|
05b24396af | ||
|
|
ba0e9e25ba | ||
|
|
a6005cb439 | ||
|
|
3ebb026453 | ||
|
|
921b0fc335 | ||
|
|
10eeef5a32 | ||
|
|
a55c39c32e | ||
|
|
70422f048b | ||
|
|
8670fb8e7d | ||
|
|
54ddfb5b2d | ||
|
|
e8cdea9a79 | ||
|
|
7613b55f49 | ||
|
|
ecc65760b7 | ||
|
|
053c36c1c7 | ||
|
|
7d9325abff | ||
|
|
baee22e19f | ||
|
|
cc765c2704 | ||
|
|
2ae8cd2987 | ||
|
|
1ce681afac | ||
|
|
b66629350d | ||
|
|
3a6dce64de | ||
|
|
fbf4c2d7ed | ||
|
|
57386b0e87 | ||
|
|
37505a1c24 | ||
|
|
4b28a1cd4a | ||
|
|
26fff3a9ac | ||
|
|
fe3592b382 | ||
|
|
78cc239b3d | ||
|
|
714c822e7d | ||
|
|
d5d8cbff6e | ||
|
|
66f5f5315a | ||
|
|
96a8f4f8fa | ||
|
|
80b71b4a9c | ||
|
|
cb86ec3c50 | ||
|
|
6451da621d | ||
|
|
8596640c59 | ||
|
|
e61adabad1 | ||
|
|
2e30eb75b5 | ||
|
|
b00dbbfc16 | ||
|
|
7acb31977c | ||
|
|
8f075c2dde | ||
|
|
15ab530afb | ||
|
|
d7d28d4d53 | ||
|
|
ac05fc5e09 | ||
|
|
affd3a59ee | ||
|
|
702558940f | ||
|
|
96af293828 | ||
|
|
9220eaab7f | ||
|
|
d2e6343808 | ||
|
|
8b71e43391 | ||
|
|
b12b3dcf79 | ||
|
|
2af76e93d6 | ||
|
|
8eff3b57e7 | ||
|
|
24470ed5f8 | ||
|
|
aba55434de | ||
|
|
49a4936cc0 | ||
|
|
1d63ac6583 | ||
|
|
bb9f180b77 | ||
|
|
64c624c281 | ||
|
|
d7946e13f1 | ||
|
|
baa19aad3f | ||
|
|
48c0d51e0e | ||
|
|
f0301c8a45 | ||
|
|
458a57bbb7 | ||
|
|
ebcee30bce | ||
|
|
34f90babf5 | ||
|
|
34dc1fed4b | ||
|
|
7633ca403c | ||
|
|
ec392c923c | ||
|
|
24205bf73f | ||
|
|
76b1e43b6f | ||
|
|
4672afb6de | ||
|
|
d2ff5738cd | ||
|
|
43246014e1 | ||
|
|
115b752ade | ||
|
|
26b06548f6 | ||
|
|
6c99b9fc72 | ||
|
|
135ebebd44 | ||
|
|
2d188b5c37 | ||
|
|
14ce1429a4 | ||
|
|
a6b585cccf | ||
|
|
6db304b6ff | ||
|
|
817a7e8301 | ||
|
|
e8790801d0 | ||
|
|
a6790ac523 | ||
|
|
76656bb043 | ||
|
|
abd741b9e6 | ||
|
|
c33fd589fb | ||
|
|
b1750ac6ba | ||
|
|
de51136608 | ||
|
|
3da3e6b86d | ||
|
|
fdba0d497a | ||
|
|
4092c0e43f | ||
|
|
4b06b07acf | ||
|
|
6636e7ff47 | ||
|
|
ec8a7cffa2 | ||
|
|
41cdc9672c | ||
|
|
6fdf37e179 | ||
|
|
60c198e2e2 | ||
|
|
154b8465a6 | ||
|
|
d352796d46 | ||
|
|
562aefcab2 | ||
|
|
a4c6aec761 | ||
|
|
0e1894e5ff | ||
|
|
ca89315960 | ||
|
|
5764f7dd1d | ||
|
|
3d2b69bd33 | ||
|
|
56bfdfaf57 | ||
|
|
28835fc0ea | ||
|
|
0f7d057261 | ||
|
|
9aaef85895 | ||
|
|
50e1be5214 | ||
|
|
13f1dcfdc3 | ||
|
|
545f41ab6a | ||
|
|
a5306cb837 | ||
|
|
415768dd71 | ||
|
|
744bd43658 | ||
|
|
f6cdb4c55d | ||
|
|
01d009734c | ||
|
|
120e333a67 | ||
|
|
caf1367dd2 | ||
|
|
82d3171604 | ||
|
|
68b8051fb2 | ||
|
|
9fc87d618b | ||
|
|
013a2f2b19 | ||
|
|
b4d831147e | ||
|
|
2816342a69 | ||
|
|
68bb2d48d5 | ||
|
|
4333127c74 | ||
|
|
d03fa0c5e3 | ||
|
|
584e3db8f0 | ||
|
|
4e365be18e | ||
|
|
e722665f2f | ||
|
|
7566301349 | ||
|
|
213f840309 | ||
|
|
35c58d63d7 | ||
|
|
8382bcc0ac | ||
|
|
ac32ff013e | ||
|
|
3d077f2a18 | ||
|
|
1d6c3b5466 | ||
|
|
47130407a5 | ||
|
|
9f7db62c89 | ||
|
|
8d1d4b5590 | ||
|
|
889524d9a7 | ||
|
|
f293fa36a7 | ||
|
|
ab144f4af9 | ||
|
|
621010e16b | ||
|
|
3f2b130848 | ||
|
|
504c78965d | ||
|
|
c625d8dc29 | ||
|
|
9234254f76 | ||
|
|
436751ce8f | ||
|
|
30bf53c79c | ||
|
|
775b71b6f1 | ||
|
|
cf08d70000 | ||
|
|
48727867eb | ||
|
|
e82294aa2f | ||
|
|
768304c5a1 | ||
|
|
00c6557d0a | ||
|
|
1c22d7a19d | ||
|
|
1eb12b7923 | ||
|
|
1661322307 | ||
|
|
a408642afa | ||
|
|
62b1d840dc | ||
|
|
55afadf895 | ||
|
|
4c4e12a8ff | ||
|
|
73c5d2c481 | ||
|
|
7c041f933d | ||
|
|
fddb7e3ba7 | ||
|
|
bf82f6966d | ||
|
|
81a348efee | ||
|
|
f24602d8d4 | ||
|
|
0f5677e544 | ||
|
|
02d52bd9e1 | ||
|
|
acb2f35982 | ||
|
|
c1ef23456b | ||
|
|
00fd54ba1b | ||
|
|
3406185b1c | ||
|
|
6f233e19bf | ||
|
|
9227f52a16 | ||
|
|
70889fd1ae | ||
|
|
c09267da8f | ||
|
|
d4a9cde562 | ||
|
|
1824013aeb | ||
|
|
13c858421c | ||
|
|
a917d47854 | ||
|
|
4c11a12d11 | ||
|
|
73a7d9cc42 | ||
|
|
68a51047e9 | ||
|
|
42db3eaf5d | ||
|
|
8c867fc829 | ||
|
|
c9bc7a3dea | ||
|
|
7c05f41418 | ||
|
|
47fe3342d3 | ||
|
|
135b15c101 | ||
|
|
26a75d11f0 | ||
|
|
85a20c9485 | ||
|
|
e239e77fdd | ||
|
|
4824b441b6 | ||
|
|
3bb9298485 | ||
|
|
557ed06daa | ||
|
|
1f0e4a191c | ||
|
|
03e29020e2 | ||
|
|
f314c20b8a | ||
|
|
5f2e737e7c | ||
|
|
0e32d885b0 | ||
|
|
363ae3044e | ||
|
|
2f5d167976 | ||
|
|
558936d23d | ||
|
|
b946784deb | ||
|
|
7adf27bcaf | ||
|
|
85d804d575 | ||
|
|
4a756c84c7 |
@@ -1,5 +1,3 @@
|
|||||||
if PACKAGE_libbbfdm
|
|
||||||
|
|
||||||
config BBF_VENDOR_EXTENSION
|
config BBF_VENDOR_EXTENSION
|
||||||
bool "Enable Vendor Extension"
|
bool "Enable Vendor Extension"
|
||||||
default y
|
default y
|
||||||
@@ -12,10 +10,6 @@ config BBF_VENDOR_PREFIX
|
|||||||
string "Vendor Prefix"
|
string "Vendor Prefix"
|
||||||
default "X_IOPSYS_EU_"
|
default "X_IOPSYS_EU_"
|
||||||
|
|
||||||
config BBF_TR181
|
|
||||||
bool "Enable TR-181 Data Model Support"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config BBF_TR104
|
config BBF_TR104
|
||||||
bool "Enable TR-104 Data Model Support"
|
bool "Enable TR-104 Data Model Support"
|
||||||
default y
|
default y
|
||||||
@@ -26,24 +20,12 @@ config BBF_TR143
|
|||||||
|
|
||||||
config BBFDM_ENABLE_JSON_PLUGIN
|
config BBFDM_ENABLE_JSON_PLUGIN
|
||||||
bool "Enable json plugin to extend datamodel"
|
bool "Enable json plugin to extend datamodel"
|
||||||
default n
|
default y
|
||||||
|
|
||||||
config BBFDM_ENABLE_DOTSO_PLUGIN
|
config BBFDM_ENABLE_DOTSO_PLUGIN
|
||||||
bool "Enable shared library plugin to extend datamodel"
|
bool "Enable shared library plugin to extend datamodel"
|
||||||
default n
|
default y
|
||||||
|
|
||||||
choice
|
config BBF_MAX_OBJECT_INSTANCES
|
||||||
prompt "Select SSL utility"
|
int "Maximum number of instances per object"
|
||||||
default BBF_USE_WOLFSSL
|
default 255
|
||||||
|
|
||||||
config BBF_USE_WOLFSSL
|
|
||||||
bool "Use WolfSSL for ssl utilities"
|
|
||||||
select CONFIG_PACKAGE_libwolfssl
|
|
||||||
|
|
||||||
config BBF_USE_OPENSSL
|
|
||||||
bool "Use OpenSSL for ssl utilities"
|
|
||||||
select CONFIG_PACKAGE_libopenssl
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|||||||
128
bbf/Makefile
128
bbf/Makefile
@@ -1,42 +1,69 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2021 IOPSYS
|
# Copyright (C) 2022 IOPSYS
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=libbbfdm
|
PKG_NAME:=libbbfdm
|
||||||
PKG_VERSION:=6.6.20
|
PKG_VERSION:=6.8.7
|
||||||
PKG_FIXUP:=autoreconf
|
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=491a8b0c00680ba110fb42d17a51627365b1baed
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
|
||||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
PKG_SOURCE_VERSION:=28ed108048c4d63bd0dc16dbf37ad52ea60c57b6
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
||||||
|
|
||||||
PKG_LICENSE:=LGPL-2.1
|
PKG_LICENSE:=LGPL-2.1
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
define Package/libbbf_api
|
define Package/libbbf_api
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=Library for libbbfdm API
|
TITLE:=Library for libbbfdm API
|
||||||
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libopenssl +libwolfssl
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libbbfdm
|
define Package/libbbfdm/default
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=Library for broadband-forum data model
|
TITLE:=Library for broadband forum data model support
|
||||||
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libbbf_api +libcurl +libopenssl +libwolfssl
|
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libtrace +libcurl
|
||||||
MENU:=1
|
endef
|
||||||
|
|
||||||
|
define Package/libbbfdm
|
||||||
|
$(Package/libbbfdm/default)
|
||||||
|
TITLE += (internal)
|
||||||
|
VARIANT:=internal
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libbbfdm-mbedtls
|
||||||
|
$(Package/libbbfdm/default)
|
||||||
|
TITLE += (mbedtls)
|
||||||
|
DEPENDS += +PACKAGE_libbbfdm-mbedtls:libmbedtls
|
||||||
|
VARIANT:=mbedtls
|
||||||
|
DEFAULT_VARIANT:=1
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libbbfdm-openssl
|
||||||
|
$(Package/libbbfdm/default)
|
||||||
|
TITLE += (openssl)
|
||||||
|
DEPENDS += +PACKAGE_libbbfdm-openssl:libopenssl
|
||||||
|
CONFLICTS := libbbfdm-mbedtls
|
||||||
|
VARIANT:=openssl
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libbbfdm-wolfssl
|
||||||
|
$(Package/libbbfdm/default)
|
||||||
|
TITLE += (wolfssl)
|
||||||
|
DEPENDS += +PACKAGE_libbbfdm-wolfssl:libwolfssl
|
||||||
|
CONFLICTS := libbbfdm-mbedtls libbbfdm-openssl
|
||||||
|
VARIANT:=wolfssl
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libbbfdm/config
|
define Package/libbbfdm/config
|
||||||
@@ -58,79 +85,81 @@ define Build/Prepare
|
|||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
CMAKE_OPTIONS += \
|
||||||
-D_GNU_SOURCE \
|
-DBBF_TR181=ON
|
||||||
-Wall -Werror \
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBF_TR181),y)
|
|
||||||
CONFIGURE_ARGS += \
|
|
||||||
--enable-tr181
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBF_TR104),y)
|
ifeq ($(CONFIG_BBF_TR104),y)
|
||||||
CONFIGURE_ARGS += \
|
CMAKE_OPTIONS += \
|
||||||
--enable-tr104
|
-DBBF_TR104=ON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBF_TR143),y)
|
ifeq ($(CONFIG_BBF_TR143),y)
|
||||||
CONFIGURE_ARGS += \
|
CMAKE_OPTIONS += \
|
||||||
--enable-tr143
|
-DBBF_TR143=ON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBF_VENDOR_EXTENSION),y)
|
ifeq ($(CONFIG_BBF_VENDOR_EXTENSION),y)
|
||||||
CONFIGURE_ARGS += \
|
CMAKE_OPTIONS += \
|
||||||
--enable-vendor-extension
|
-DBBF_VENDOR_EXTENSION=ON
|
||||||
|
|
||||||
CONFIGURE_ARGS += \
|
CMAKE_OPTIONS += \
|
||||||
BBF_VENDOR_LIST="$(CONFIG_BBF_VENDOR_LIST)" \
|
-DBBF_VENDOR_LIST:String="$(CONFIG_BBF_VENDOR_LIST)" \
|
||||||
BBF_VENDOR_PREFIX="$(CONFIG_BBF_VENDOR_PREFIX)"
|
-DBBF_VENDOR_PREFIX:String="$(CONFIG_BBF_VENDOR_PREFIX)" \
|
||||||
|
-DBBF_MAX_OBJECT_INSTANCES:Integer=$(CONFIG_BBF_MAX_OBJECT_INSTANCES)
|
||||||
|
|
||||||
endif ##CONFIG_BBF_VENDOR_EXTENSION
|
endif ##CONFIG_BBF_VENDOR_EXTENSION
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y)
|
ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y)
|
||||||
CONFIGURE_ARGS += \
|
CMAKE_OPTIONS += \
|
||||||
--enable-json-plugin
|
-DBBF_JSON_PLUGIN=ON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBFDM_ENABLE_DOTSO_PLUGIN),y)
|
ifeq ($(CONFIG_BBFDM_ENABLE_DOTSO_PLUGIN),y)
|
||||||
CONFIGURE_ARGS += \
|
CMAKE_OPTIONS += \
|
||||||
--enable-shared-library
|
-DBBF_DOTSO_PLUGIN=ON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBF_USE_WOLFSSL), y)
|
ifeq ($(BUILD_VARIANT),openssl)
|
||||||
CONFIGURE_ARGS += --enable-libwolfssl
|
CMAKE_OPTIONS += -DWITH_OPENSSL=ON
|
||||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
|
|
||||||
TARGET_LDFLAGS += "-lwolfssl"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_BBF_USE_OPENSSL), y)
|
ifeq ($(BUILD_VARIANT),wolfssl)
|
||||||
CONFIGURE_ARGS += --enable-libopenssl
|
CMAKE_OPTIONS += -DWITH_WOLFSSL=ON
|
||||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
|
endif
|
||||||
TARGET_LDFLAGS += "-lssl"
|
|
||||||
|
ifeq ($(BUILD_VARIANT),mbedtls)
|
||||||
|
CMAKE_OPTIONS += -DWITH_MBEDTLS=ON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
define Package/libbbf_api/install
|
define Package/libbbf_api/install
|
||||||
$(INSTALL_DIR) $(1)/lib
|
$(INSTALL_DIR) $(1)/lib
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbf_api.so* $(1)/lib/
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libbbfdm/install
|
define Package/libbbfdm/default/install
|
||||||
$(INSTALL_DIR) $(1)/lib
|
$(INSTALL_DIR) $(1)/lib
|
||||||
$(INSTALL_DIR) $(1)/usr/share/bbfdm
|
$(INSTALL_DIR) $(1)/usr/share/bbfdm
|
||||||
$(INSTALL_DIR) $(1)/etc/bbfdm
|
$(INSTALL_DIR) $(1)/etc/bbfdm
|
||||||
$(INSTALL_DIR) $(1)/etc/bbfdm/dmmap
|
$(INSTALL_DIR) $(1)/etc/bbfdm/dmmap
|
||||||
$(INSTALL_DIR) $(1)/etc/bbfdm/json
|
$(INSTALL_DIR) $(1)/etc/bbfdm/json
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
|
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.so* $(1)/lib/
|
$(CP) $(PKG_BUILD_DIR)/libbbfdm.so $(1)/lib/
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/* $(1)/usr/share/bbfdm
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/* $(1)/usr/share/bbfdm
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libbbfdm/prerm
|
define Package/libbbfdm/default/prerm
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
rm -rf /etc/bbfdm/dmmap/*
|
rm -rf /etc/bbfdm/dmmap/*
|
||||||
exit 0
|
exit 0
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
Package/libbbfdm-openssl/prerm = $(Package/libbbfdm/default/prerm)
|
||||||
|
Package/libbbfdm-wolfssl/prerm = $(Package/libbbfdm/default/prerm)
|
||||||
|
Package/libbbfdm-mbedtls/prerm = $(Package/libbbfdm/default/prerm)
|
||||||
|
|
||||||
|
Package/libbbfdm-openssl/install = $(Package/libbbfdm/default/install)
|
||||||
|
Package/libbbfdm-wolfssl/install = $(Package/libbbfdm/default/install)
|
||||||
|
Package/libbbfdm-mbedtls/install = $(Package/libbbfdm/default/install)
|
||||||
|
|
||||||
define Build/InstallDev
|
define Build/InstallDev
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
$(INSTALL_DIR) $(1)/usr/include
|
$(INSTALL_DIR) $(1)/usr/include
|
||||||
@@ -139,9 +168,12 @@ define Build/InstallDev
|
|||||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/
|
||||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/libbbfdm/
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/libbbfdm/
|
||||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbf_api/*.h $(1)/usr/include/libbbf_api/
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbf_api/*.h $(1)/usr/include/libbbf_api/
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.{a,so*} $(1)/usr/lib/
|
$(CP) $(PKG_BUILD_DIR)/libbbfdm.so $(1)/usr/lib/
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/.libs/libbbf_api.{a,so*} $(1)/usr/lib/
|
touch $(1)/usr/lib/libbbf_api.so
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,libbbf_api))
|
$(eval $(call BuildPackage,libbbf_api))
|
||||||
$(eval $(call BuildPackage,libbbfdm))
|
$(eval $(call BuildPackage,libbbfdm))
|
||||||
|
$(eval $(call BuildPackage,libbbfdm-openssl))
|
||||||
|
$(eval $(call BuildPackage,libbbfdm-wolfssl))
|
||||||
|
$(eval $(call BuildPackage,libbbfdm-mbedtls))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2020 iopsys Software Solutions AB
|
# Copyright (C) 2022 iopsys Software Solutions AB
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
@@ -8,22 +8,25 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=bulkdata
|
PKG_NAME:=bulkdata
|
||||||
PKG_VERSION:=1.0.4
|
PKG_VERSION:=2.0.3
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bulkdata.git
|
||||||
PKG_SOURCE_VERSION:=b35e7862bc17fc11dc1f757c7b93900995a28633
|
PKG_SOURCE_VERSION:=85d7486a21a9eb0e0f345b587b3ac506edcb72fe
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
PKG_BUILD_DEPENDS:=bbf
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/$(PKG_NAME)
|
define Package/$(PKG_NAME)
|
||||||
@@ -31,11 +34,7 @@ define Package/$(PKG_NAME)
|
|||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=BBF BulkData Collection
|
TITLE:=BBF BulkData Collection
|
||||||
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +curl +libblobmsg-json +libbbfdm +libbbf_api
|
DEPENDS:=+libubus +libuci +libubox +libjson-c +libcurl +libblobmsg-json
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
|
||||||
BBF BulkData Collection
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
@@ -52,7 +51,7 @@ define Package/$(PKG_NAME)/install
|
|||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bulkdatad $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bulkdatad $(1)/usr/sbin/
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
|
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib/bbfdm
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bbf_plugin/*.so $(1)/usr/lib/bbfdm
|
||||||
$(CP) ./files/* $(1)/
|
$(CP) ./files/* $(1)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +1,6 @@
|
|||||||
|
|
||||||
config bulkdata 'bulkdata'
|
config bulkdata 'bulkdata'
|
||||||
option enable '0'
|
option enable '0'
|
||||||
#Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4
|
#Log levels: Error=1, Warning=2, Info=3, Debug=4
|
||||||
option log_level '3'
|
option log_level '3'
|
||||||
|
|
||||||
config profile
|
|
||||||
option profile_id '1'
|
|
||||||
option enable '0'
|
|
||||||
option name ''
|
|
||||||
option nbre_of_retained_failed_reports '0'
|
|
||||||
option protocol 'http'
|
|
||||||
option encoding_type ''
|
|
||||||
option reporting_interval '86400'
|
|
||||||
option time_reference '0'
|
|
||||||
option csv_encoding_field_separator ','
|
|
||||||
option csv_encoding_row_separator ' '
|
|
||||||
option csv_encoding_escape_character '"'
|
|
||||||
option csv_encoding_report_format 'column'
|
|
||||||
option csv_encoding_row_time_stamp 'unix'
|
|
||||||
option json_encoding_report_format 'objecthierarchy'
|
|
||||||
option json_encoding_report_time_stamp 'unix'
|
|
||||||
option http_url ''
|
|
||||||
option http_username ''
|
|
||||||
option http_password ''
|
|
||||||
option http_compression 'none'
|
|
||||||
option http_method 'post'
|
|
||||||
option http_use_date_header '1'
|
|
||||||
option http_retry_enable '0'
|
|
||||||
option http_retry_minimum_wait_interval '5'
|
|
||||||
option http_retry_interval_multiplier '2000'
|
|
||||||
option http_persist_across_reboot '0'
|
|
||||||
|
|
||||||
config profile_parameter
|
|
||||||
option profile_id '1'
|
|
||||||
option name ''
|
|
||||||
option reference ''
|
|
||||||
|
|
||||||
config profile_http_request_uri_parameter
|
|
||||||
option profile_id '1'
|
|
||||||
option name ''
|
|
||||||
option reference ''
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
# Bulkdata Software
|
|
||||||
# Copyright (C) 2020 iopsys Software Solutions AB
|
|
||||||
# Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
|
||||||
|
|
||||||
START=99
|
START=99
|
||||||
STOP=10
|
STOP=10
|
||||||
@@ -10,13 +7,16 @@ USE_PROCD=1
|
|||||||
PROG="/usr/sbin/bulkdatad"
|
PROG="/usr/sbin/bulkdatad"
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
local bulkdata_enable=`uci -q get bulkdata.bulkdata.enable`
|
local enable=$(uci -q get bulkdata.bulkdata.enable)
|
||||||
if [ "$bulkdata_enable" = "1" ]; then
|
|
||||||
procd_open_instance
|
[ "$enable" != "1" ] && {
|
||||||
procd_set_param command "$PROG"
|
return 0
|
||||||
procd_set_param respawn "3" "7" "0"
|
}
|
||||||
procd_close_instance
|
|
||||||
fi
|
procd_open_instance
|
||||||
|
procd_set_param command "$PROG"
|
||||||
|
procd_set_param respawn "3" "7" "0"
|
||||||
|
procd_close_instance
|
||||||
}
|
}
|
||||||
|
|
||||||
boot() {
|
boot() {
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
|
PROFILE_COUNT=1
|
||||||
|
|
||||||
|
get_next_count()
|
||||||
|
{
|
||||||
|
local config="$1"
|
||||||
|
local default_name="${2}"
|
||||||
|
local count=${3}
|
||||||
|
local found=0
|
||||||
|
|
||||||
|
if [ -z "$count" ]; then
|
||||||
|
count=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while [ "${found}" -ne 1 ]; do
|
||||||
|
uci -q get ${config}.${default_name}_${count} >/dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
count=$((count + 1))
|
||||||
|
else
|
||||||
|
found=1;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "${default_name}_${count}"
|
||||||
|
}
|
||||||
|
|
||||||
|
translate_profile_id_to_profile_name() {
|
||||||
|
local section="${1}"
|
||||||
|
local profile_id="${2}"
|
||||||
|
local profile_name="${3}"
|
||||||
|
local curr_profile_id
|
||||||
|
|
||||||
|
config_get curr_profile_id "${section}" profile_id
|
||||||
|
|
||||||
|
[ -n "${curr_profile_id}" ] || return
|
||||||
|
|
||||||
|
[ "${curr_profile_id}" != "${profile_id}" ] && return
|
||||||
|
|
||||||
|
uci -q set bulkdata.${section}.profile_name="${profile_name}"
|
||||||
|
uci -q set bulkdata.${section}.profile_id=""
|
||||||
|
}
|
||||||
|
|
||||||
|
update_profile_sections() {
|
||||||
|
local section="${1}"
|
||||||
|
local default="${2}"
|
||||||
|
local profile_name
|
||||||
|
|
||||||
|
config_get profile_id "${section}" profile_id
|
||||||
|
|
||||||
|
[ -n "${profile_id}" ] || return
|
||||||
|
|
||||||
|
case "${section}" in
|
||||||
|
"cfg"*)
|
||||||
|
profile_name="$(get_next_count bulkdata ${default} ${PROFILE_COUNT})"
|
||||||
|
uci_rename bulkdata "${section}" "${profile_name}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
PROFILE_COUNT=$((PROFILE_COUNT + 1))
|
||||||
|
|
||||||
|
[ -n "$profile_name" ] && section="${profile_name}"
|
||||||
|
|
||||||
|
uci -q set bulkdata.${section}.profile_id=""
|
||||||
|
|
||||||
|
config_foreach translate_profile_id_to_profile_name profile_parameter "${profile_id}" "${profile_name}"
|
||||||
|
config_foreach translate_profile_id_to_profile_name profile_http_request_uri_parameter "${profile_id}" "${profile_name}"
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load bulkdata
|
||||||
|
config_foreach update_profile_sections profile profile
|
||||||
|
uci commit bulkdata
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=dectmngr
|
PKG_NAME:=dectmngr
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=3
|
||||||
PKG_VERSION:=3.5.1
|
PKG_VERSION:=3.5.4
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=cc475d5bfe663b73f4ae28d74c9035e210a8ad24
|
PKG_SOURCE_VERSION:=54ebb54162fae9fdd6e327e430cf57aa217c176d
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -11,6 +11,8 @@ PROG=/usr/sbin/dectmngr
|
|||||||
LOG_PATH=/var/log/dectmngr
|
LOG_PATH=/var/log/dectmngr
|
||||||
DB_PATH=/etc/dect
|
DB_PATH=/etc/dect
|
||||||
|
|
||||||
|
DECT_GPIO=$(db -q get hw.board.dect_gpio)
|
||||||
|
|
||||||
# Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process.
|
# Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process.
|
||||||
stop_and_wait_dectmngr() {
|
stop_and_wait_dectmngr() {
|
||||||
pidof $NAME && killall -q $NAME
|
pidof $NAME && killall -q $NAME
|
||||||
@@ -30,7 +32,7 @@ start_service() {
|
|||||||
|
|
||||||
test $(db get hw.board.hasDect) = "0" && return
|
test $(db get hw.board.hasDect) = "0" && return
|
||||||
|
|
||||||
echo 1 > /sys/class/gpio/gpio14/value
|
[ -n "$DECT_GPIO" ] && echo 1 > /sys/class/gpio/gpio${DECT_GPIO}/value
|
||||||
|
|
||||||
rfpi=$(db -q get hw.board.dect_rfpi)
|
rfpi=$(db -q get hw.board.dect_rfpi)
|
||||||
[ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_ext="$opt_ext -rfpi $rfpi"
|
[ -n "$rfpi" -a ${#rfpi} -eq 14 ] && opt_ext="$opt_ext -rfpi $rfpi"
|
||||||
@@ -71,7 +73,7 @@ start_service() {
|
|||||||
stop_service() {
|
stop_service() {
|
||||||
test $(db get hw.board.hasDect) = "0" && return
|
test $(db get hw.board.hasDect) = "0" && return
|
||||||
|
|
||||||
echo 0 > /sys/class/gpio/gpio14/value
|
[ -n "$DECT_GPIO" ] && echo 0 > /sys/class/gpio/gpio${DECT_GPIO}/value
|
||||||
stop_and_wait_dectmngr
|
stop_and_wait_dectmngr
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,8 +88,10 @@ service_triggers()
|
|||||||
}
|
}
|
||||||
|
|
||||||
boot() {
|
boot() {
|
||||||
echo 14 > /sys/class/gpio/export
|
[ -n "$DECT_GPIO" ] && {
|
||||||
echo out > /sys/class/gpio/gpio14/direction
|
echo ${DECT_GPIO} > /sys/class/gpio/export
|
||||||
|
echo out > /sys/class/gpio/gpio${DECT_GPIO}/direction
|
||||||
|
}
|
||||||
|
|
||||||
[ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH
|
[ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH
|
||||||
[ ! -d $DB_PATH ] && mkdir -p $DB_PATH
|
[ ! -d $DB_PATH ] && mkdir -p $DB_PATH
|
||||||
|
|||||||
@@ -7,18 +7,18 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=endptmngr
|
PKG_NAME:=endptmngr
|
||||||
PKG_VERSION:=0.6
|
PKG_VERSION:=0.7
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
|
||||||
PKG_SOURCE_VERSION:=2390a3503990e04e33e8e448ad9dccc00f206908
|
PKG_SOURCE_VERSION:=c099d6b0438f945d91bf3c9718da730a8a52ff27
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_LICENSE:=MIT
|
PKG_LICENSE:=PROPRIETARY
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
export BUILD_DIR
|
export BUILD_DIR
|
||||||
|
|||||||
@@ -5,18 +5,18 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=evoice
|
PKG_NAME:=evoice
|
||||||
PKG_VERSION:=0.1
|
PKG_VERSION:=0.2.1
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/evoice.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/evoice.git
|
||||||
PKG_SOURCE_VERSION:=56a568164e84c8e2d7f2c7f06d26265e837b11ef
|
PKG_SOURCE_VERSION:=f2477946f9e142d01820b38e32ce98a781e0310e
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_LICENSE:=MIT
|
PKG_LICENSE:=PROPRIETARY
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ define Package/$(PKG_NAME)
|
|||||||
SUBMENU:=Telephony
|
SUBMENU:=Telephony
|
||||||
TITLE:=Ensemble Voice
|
TITLE:=Ensemble Voice
|
||||||
URL:=
|
URL:=
|
||||||
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp
|
DEPENDS:= +libubox +libubus +libpicoevent +libuci +libstdcpp +TARGET_iopsys_brcm63xx_arm:bcmkernel +TARGET_iopsys_econet:kmod-voip_driver
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
define Package/$(PKG_NAME)/description
|
||||||
@@ -45,18 +45,31 @@ define Build/Prepare
|
|||||||
rsync -av /swdev/bide/evoice_clean/* $(PKG_BUILD_DIR)/
|
rsync -av /swdev/bide/evoice_clean/* $(PKG_BUILD_DIR)/
|
||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
export IDIR = $(STAGING_DIR)/usr/include
|
|
||||||
export BDIR = bcm963xx/userspace/private/apps/voice
|
ifeq ($(CONFIG_TARGET_iopsys_brcm63xx_arm),y)
|
||||||
export _XFLAGS = -I$(IDIR) -I$(IDIR)/$(BDIR)/inc -I$(IDIR)/bcm963xx/xchg/bos/publicInc -I$(IDIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
|
TARGET_PLATFORM=BROADCOM
|
||||||
|
export IDIR = $(STAGING_DIR)/usr/include
|
||||||
|
export BDIR = bcm963xx/userspace/private/apps/voice
|
||||||
|
export _XFLAGS = -I$(IDIR) -I$(IDIR)/$(BDIR)/inc -I$(IDIR)/bcm963xx/xchg/bos/publicInc -I$(IDIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
|
||||||
|
else ifeq ($(CONFIG_TARGET_iopsys_econet),y)
|
||||||
|
TARGET_PLATFORM=ECONET
|
||||||
|
endif
|
||||||
|
|
||||||
|
export TARGET_PLATFORM
|
||||||
|
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
|
@echo "TARGET_PLATFORM=${TARGET_PLATFORM}"
|
||||||
+$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=SVrgBcmFxs LIF=cerder DBG=dbg
|
+$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=SVrgBcmFxs LIF=cerder DBG=dbg
|
||||||
|
+$(MAKE) -r -R -C $(PKG_BUILD_DIR) -f _bld/src/cdabs.mk SWB=b_gxxqca6 HWA=a_openwrt HWC=c_hosted OSP=p_posix TRG=libvoiceservice LIF=cerder DBG=dbg
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/evoice/install
|
define Package/evoice/install
|
||||||
$(CP) ./files/* $(1)/
|
$(CP) ./files/* $(1)/
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/evoice $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/evoice $(1)/usr/sbin/
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/_bin/a_openwrt/libvoiceservice.so $(1)/usr/lib/bbfdm/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,evoice))
|
$(eval $(call BuildPackage,evoice))
|
||||||
|
|||||||
@@ -98,20 +98,20 @@ config RTP '1RTP'
|
|||||||
option JitterBufferType 'Static'
|
option JitterBufferType 'Static'
|
||||||
|
|
||||||
config FXXPorts 'POTS'
|
config FXXPorts 'POTS'
|
||||||
option Region 'SE'
|
option Region 'US'
|
||||||
|
|
||||||
config FXSPorts 'FXS1'
|
config FXSPorts 'FXS1'
|
||||||
option Enable '1'
|
option Enable '1'
|
||||||
option DialType 'Tone'
|
option DialType 'Tone'
|
||||||
option TransmitGain '4'
|
option TransmitGain '0'
|
||||||
option ReceiveGain '4'
|
option ReceiveGain '0'
|
||||||
option EchoCancellationEnable '1'
|
option EchoCancellationEnable '1'
|
||||||
|
|
||||||
config FXSPorts 'FXS2'
|
config FXSPorts 'FXS2'
|
||||||
option Enable '1'
|
option Enable '1'
|
||||||
option DialType 'Tone'
|
option DialType 'Tone'
|
||||||
option TransmitGain '4'
|
option TransmitGain '0'
|
||||||
option ReceiveGain '4'
|
option ReceiveGain '0'
|
||||||
option EchoCancellationEnable '1'
|
option EchoCancellationEnable '1'
|
||||||
|
|
||||||
config Extension 'Extension1'
|
config Extension 'Extension1'
|
||||||
|
|||||||
38
evoice/files/etc/evoice/voicecap
Normal file
38
evoice/files/etc/evoice/voicecap
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Capabilties are platform dependent. Keep these separated from customer configuration
|
||||||
|
|
||||||
|
config capabilities_prm 'limits'
|
||||||
|
option MaxCallLogCount '100'
|
||||||
|
|
||||||
|
config capabilities_prm 'features'
|
||||||
|
option QIModelsSupported 'G.107'
|
||||||
|
|
||||||
|
config CapabilitiesCodec 'Codec1'
|
||||||
|
option Codec 'G.711ALaw'
|
||||||
|
option BitRate '64000'
|
||||||
|
option PacketizationPeriod '20,30'
|
||||||
|
option SilenceSupression '1'
|
||||||
|
|
||||||
|
config CapabilitiesCodec 'Codec2'
|
||||||
|
option Codec 'G.711MuLaw'
|
||||||
|
option BitRate '64000'
|
||||||
|
option PacketizationPeriod '20,30'
|
||||||
|
option SilenceSupression '1'
|
||||||
|
|
||||||
|
config CapabilitiesCodec 'Codec3'
|
||||||
|
option Codec 'G.726'
|
||||||
|
option BitRate '32000'
|
||||||
|
option PacketizationPeriod '20,30'
|
||||||
|
option SilenceSupression '0'
|
||||||
|
|
||||||
|
config CapabilitiesCodec 'Codec4'
|
||||||
|
option Codec 'G.722'
|
||||||
|
option BitRate '64000'
|
||||||
|
option PacketizationPeriod '20,30'
|
||||||
|
option SilenceSupression '0'
|
||||||
|
|
||||||
|
config CapabilitiesCodec 'Codec4'
|
||||||
|
option Codec 'G.729'
|
||||||
|
option BitRate '8000'
|
||||||
|
option PacketizationPeriod '20,30'
|
||||||
|
option SilenceSupression '0'
|
||||||
|
|
||||||
@@ -94,6 +94,7 @@ config cs_account 'map_set'
|
|||||||
option Enable_Call_Transfer 'voice.Set@.CallTransferEnable'
|
option Enable_Call_Transfer 'voice.Set@.CallTransferEnable'
|
||||||
option AnonymousReject 'voice.Set@.AnonymousCallRejectionEnable'
|
option AnonymousReject 'voice.Set@.AnonymousCallRejectionEnable'
|
||||||
option AllowAnonymousConf 'voice.Set@.AnonymousCallEnable'
|
option AllowAnonymousConf 'voice.Set@.AnonymousCallEnable'
|
||||||
|
option CallerIDEnable 'voice.Set@.CallerIDEnable'
|
||||||
|
|
||||||
config cs_xvendor 'map_np_cs'
|
config cs_xvendor 'map_np_cs'
|
||||||
option np_sc_actCW 'voice.X_IOPSYS_EU_NpSc@.CW_ACT'
|
option np_sc_actCW 'voice.X_IOPSYS_EU_NpSc@.CW_ACT'
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ config static_prm 'defaults'
|
|||||||
option Print_Control '4'
|
option Print_Control '4'
|
||||||
option Print_UDP_Addr '192.168.1.3'
|
option Print_UDP_Addr '192.168.1.3'
|
||||||
option Print_UDP_Port '60000'
|
option Print_UDP_Port '60000'
|
||||||
option Verbosity 'Off'
|
option Verbosity 'On'
|
||||||
option Failure_Log 'On'
|
option Failure_Log 'On'
|
||||||
option Message_Log 'Off'
|
option Message_Log 'On'
|
||||||
option Method_Trace 'Off'
|
option Method_Trace 'Off'
|
||||||
option Dial_Cache_Size '0'
|
option Dial_Cache_Size '0'
|
||||||
option Reverse_Fax_Detection '0'
|
option Reverse_Fax_Detection '0'
|
||||||
@@ -42,6 +42,7 @@ config static_prm 'defaults'
|
|||||||
option NAT_Address_From_SIP '0'
|
option NAT_Address_From_SIP '0'
|
||||||
option HookOn_Transfer '0'
|
option HookOn_Transfer '0'
|
||||||
option Enable_Call_Transfer '1'
|
option Enable_Call_Transfer '1'
|
||||||
|
option CallerIDEnable '1'
|
||||||
option Multiparty_Transp '0'
|
option Multiparty_Transp '0'
|
||||||
option Presence_Indication '0'
|
option Presence_Indication '0'
|
||||||
option Login_Note ' '
|
option Login_Note ' '
|
||||||
|
|||||||
@@ -1,36 +1,14 @@
|
|||||||
if PACKAGE_icwmp
|
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Select ACS sever"
|
prompt "Select ACS sever"
|
||||||
default CWMP_ACS_MULTI
|
default CWMP_ACS_MULTI
|
||||||
|
depends on PACKAGE_icwmp || \
|
||||||
|
PACKAGE_icwmp-openssl || \
|
||||||
|
PACKAGE_icwmp-wolfssl || \
|
||||||
|
PACKAGE_icwmp-mbedtls
|
||||||
|
|
||||||
config CWMP_ACS_MULTI
|
config CWMP_ACS_MULTI
|
||||||
bool "No specific ACS, follow standard"
|
bool "No specific ACS, follow standard"
|
||||||
|
|
||||||
config CWMP_ACS_HDM
|
config CWMP_ACS_HDM
|
||||||
bool "HDM"
|
bool "Select HDM as ACS server"
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config CWMP_DEBUG
|
|
||||||
bool "Compile with debug options"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config CWMP_DEVEL_DEBUG
|
|
||||||
bool "Compile with development debug options"
|
|
||||||
default n
|
|
||||||
|
|
||||||
choice
|
|
||||||
prompt "Select SSL utility"
|
|
||||||
default CWMP_USE_WOLFSSL
|
|
||||||
|
|
||||||
config CWMP_USE_WOLFSSL
|
|
||||||
bool "Use WolfSSL for ssl utilities"
|
|
||||||
select CONFIG_PACKAGE_libwolfssl
|
|
||||||
|
|
||||||
config CWMP_USE_OPENSSL
|
|
||||||
bool "Use OpenSSL for ssl utilities"
|
|
||||||
select CONFIG_PACKAGE_libopenssl
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|||||||
120
icwmp/Makefile
120
icwmp/Makefile
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2020 iopsys Software Solutions AB
|
# Copyright (C) 2020-2022 IOPSYS Software Solutions AB
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
@@ -8,57 +8,86 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=icwmp
|
PKG_NAME:=icwmp
|
||||||
PKG_VERSION:=8.4.0
|
PKG_VERSION:=8.4.25
|
||||||
PKG_FIXUP:=autoreconf
|
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=473e8f449032cb195ae4aff2595e5c2efe623335
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
|
||||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
PKG_SOURCE_VERSION:=cbfff1b644efceca0b5c72d062535bc766ca1e54
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
|
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
||||||
|
|
||||||
PKG_LICENSE:=GPLv2
|
PKG_LICENSE:=GPLv2
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
PKG_FIXUP:=autoreconf
|
||||||
PKG_CONFIG_DEPENDS:= \
|
PKG_CONFIG_DEPENDS:= \
|
||||||
CONFIG_CWMP_ACS_MULTI \
|
CONFIG_CWMP_ACS_MULTI \
|
||||||
CONFIG_CWMP_ACS_HDM \
|
CONFIG_CWMP_ACS_HDM \
|
||||||
CONFIG_CWMP_DEBUG \
|
CONFIG_CWMP_DEBUG \
|
||||||
CONFIG_CWMP_DEVEL_DEBUG
|
CONFIG_CWMP_DEVEL_DEBUG
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/$(PKG_NAME)
|
define Package/icwmp/default
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=CWMP client
|
TITLE:=TR069 CWMP client
|
||||||
DEPENDS:=+libuci +libubox +jshn +libubus +libblobmsg-json +libpthread +ubusd +shflags +getopt +zlib +libjson-c +libwolfssl +curl +libcurl +libopenssl +mxml
|
DEPENDS:=+libuci +libubox +libblobmsg-json +libubus +libjson-c +libcurl +mxml
|
||||||
MENU := 1
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
define Package/icwmp/config
|
||||||
A free client implementation of CWMP (TR-069) protocol
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/config
|
|
||||||
source "$(SOURCE)/Config_cwmp.in"
|
source "$(SOURCE)/Config_cwmp.in"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1)
|
|
||||||
ifneq ($(USE_LOCAL),)
|
|
||||||
define Build/Prepare
|
|
||||||
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
|
||||||
endef
|
|
||||||
endif
|
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-D_GNU_SOURCE \
|
-D_GNU_SOURCE \
|
||||||
"-DCWMP_REVISION=\\\"$(PKG_SOURCE_VERSION)\\\""
|
"-DCWMP_REVISION=\\\"$(PKG_SOURCE_VERSION)\\\""
|
||||||
|
|
||||||
|
define Package/icwmp
|
||||||
|
$(Package/icwmp/default)
|
||||||
|
TITLE += (internal)
|
||||||
|
VARIANT:=internal
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/icwmp-openssl
|
||||||
|
$(Package/icwmp/default)
|
||||||
|
TITLE += (openssl)
|
||||||
|
DEPENDS += +PACKAGE_icwmp-openssl:libopenssl
|
||||||
|
VARIANT:=openssl
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/icwmp-wolfssl
|
||||||
|
$(Package/icwmp/default)
|
||||||
|
TITLE += (wolfssl)
|
||||||
|
DEPENDS += +PACKAGE_icwmp-wolfssl:libwolfssl
|
||||||
|
CONFLICTS := icwmp-openssl
|
||||||
|
VARIANT:=wolfssl
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/icwmp-mbedtls
|
||||||
|
$(Package/icwmp/default)
|
||||||
|
TITLE += (mbedtls)
|
||||||
|
DEPENDS += +PACKAGE_icwmp-mbedtls:libmbedtls
|
||||||
|
CONFLICTS := icwmp-openssl icwmp-wolfssl
|
||||||
|
VARIANT:=mbedtls
|
||||||
|
DEFAULT_VARIANT:=1
|
||||||
|
endef
|
||||||
|
|
||||||
|
ifeq ($(BUILD_VARIANT),openssl)
|
||||||
|
CONFIGURE_ARGS += --enable-libopenssl
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BUILD_VARIANT),wolfssl)
|
||||||
|
CONFIGURE_ARGS += --enable-libwolfssl
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BUILD_VARIANT),mbedtls)
|
||||||
|
CONFIGURE_ARGS += --enable-libmbedtls
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_CWMP_ACS_MULTI),y)
|
ifeq ($(CONFIG_CWMP_ACS_MULTI),y)
|
||||||
CONFIGURE_ARGS += \
|
CONFIGURE_ARGS += \
|
||||||
--enable-acs=multi
|
--enable-acs=multi
|
||||||
@@ -69,44 +98,37 @@ CONFIGURE_ARGS += \
|
|||||||
--enable-acs=hdm
|
--enable-acs=hdm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_CWMP_DEBUG),y)
|
USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1)
|
||||||
CONFIGURE_ARGS += \
|
ifneq ($(USE_LOCAL),)
|
||||||
--enable-debug
|
define Build/Prepare
|
||||||
|
$(CP) ./src/* $(PKG_BUILD_DIR)/
|
||||||
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_CWMP_DEVEL_DEBUG),y)
|
define Package/icwmp/default/install
|
||||||
CONFIGURE_ARGS += \
|
|
||||||
--enable-devel
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_CWMP_USE_WOLFSSL), y)
|
|
||||||
CONFIGURE_ARGS += --enable-libwolfssl
|
|
||||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
|
|
||||||
TARGET_LDFLAGS += "-lwolfssl"
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_CWMP_USE_OPENSSL), y)
|
|
||||||
CONFIGURE_ARGS += --enable-libopenssl
|
|
||||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
|
|
||||||
TARGET_LDFLAGS += "-lssl"
|
|
||||||
endif
|
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/install
|
|
||||||
$(INSTALL_DIR) $(1)/etc/icwmpd
|
$(INSTALL_DIR) $(1)/etc/icwmpd
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_DIR) $(1)/etc/config
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||||
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
||||||
|
$(INSTALL_DIR) $(1)/etc/bbfdm/json/
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/icwmpd $(1)/usr/sbin/icwmpd
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/icwmpd $(1)/usr/sbin/icwmpd
|
||||||
$(INSTALL_DATA) ./files/etc/config/cwmp $(1)/etc/config/cwmp
|
$(INSTALL_DATA) ./files/etc/config/cwmp $(1)/etc/config/cwmp
|
||||||
$(INSTALL_BIN) ./files/etc/firewall.cwmp $(1)/etc/firewall.cwmp
|
$(INSTALL_BIN) ./files/etc/firewall.cwmp $(1)/etc/firewall.cwmp
|
||||||
$(INSTALL_BIN) ./files/etc/init.d/icwmpd $(1)/etc/init.d/icwmpd
|
$(INSTALL_BIN) ./files/etc/init.d/icwmpd $(1)/etc/init.d/icwmpd
|
||||||
$(INSTALL_BIN) ./files/etc/uci-defaults/85-cwmp-set-userid $(1)/etc/uci-defaults/
|
$(INSTALL_BIN) ./files/etc/uci-defaults/85-cwmp-set-userid $(1)/etc/uci-defaults/
|
||||||
$(INSTALL_BIN) ./files/etc/uci-defaults/90-cwmpfirewall $(1)/etc/uci-defaults/
|
$(INSTALL_BIN) ./files/etc/uci-defaults/90-cwmpfirewall $(1)/etc/uci-defaults/
|
||||||
$(INSTALL_BIN) ./files/etc/uci-defaults/95-icwmp-generate-ssl $(1)/etc/uci-defaults/
|
|
||||||
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/icwmp $(1)/lib/upgrade/keep.d/icwmp
|
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/icwmp $(1)/lib/upgrade/keep.d/icwmp
|
||||||
$(INSTALL_BIN) ./files/etc/icwmpd/update.sh $(1)/etc/icwmpd/update.sh
|
$(INSTALL_BIN) ./files/etc/icwmpd/update.sh $(1)/etc/icwmpd/update.sh
|
||||||
|
$(INSTALL_DATA) ./files/etc/bbfdm/json/CWMPManagementServer.json $(1)/etc/bbfdm/json/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
Package/icwmp-openssl/install = $(Package/icwmp/default/install)
|
||||||
|
Package/icwmp-wolfssl/install = $(Package/icwmp/default/install)
|
||||||
|
Package/icwmp-mbedtls/install = $(Package/icwmp/default/install)
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,icwmp))
|
||||||
|
$(eval $(call BuildPackage,icwmp-openssl))
|
||||||
|
$(eval $(call BuildPackage,icwmp-wolfssl))
|
||||||
|
$(eval $(call BuildPackage,icwmp-mbedtls))
|
||||||
|
|||||||
36
icwmp/files/etc/bbfdm/json/CWMPManagementServer.json
Normal file
36
icwmp/files/etc/bbfdm/json/CWMPManagementServer.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"json_plugin_version": 1,
|
||||||
|
"Device.CWMPManagementServer.": {
|
||||||
|
"type": "object",
|
||||||
|
"version": "2.15",
|
||||||
|
"protocols": [
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"access": false,
|
||||||
|
"array": false,
|
||||||
|
"dependency": "file:/etc/config/cwmp",
|
||||||
|
"EnableCWMP": {
|
||||||
|
"type": "boolean",
|
||||||
|
"version": "2.15",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "cwmp",
|
||||||
|
"section": {
|
||||||
|
"name": "cpe"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "enable"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,11 +11,11 @@ config acs 'acs'
|
|||||||
option retry_min_wait_interval '5'
|
option retry_min_wait_interval '5'
|
||||||
# possible configs interval :[1000:65535]
|
# possible configs interval :[1000:65535]
|
||||||
option retry_interval_multiplier '2000'
|
option retry_interval_multiplier '2000'
|
||||||
option https_ssl_capath ''
|
|
||||||
option ipv6_enable '0'
|
option ipv6_enable '0'
|
||||||
option ip_version '4'
|
option ip_version '4'
|
||||||
|
|
||||||
config cpe 'cpe'
|
config cpe 'cpe'
|
||||||
|
option enable '1'
|
||||||
option default_wan_interface 'wan'
|
option default_wan_interface 'wan'
|
||||||
option log_to_console 'disable'
|
option log_to_console 'disable'
|
||||||
option log_to_file 'disable'
|
option log_to_file 'disable'
|
||||||
|
|||||||
@@ -1,93 +1,29 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
log() {
|
log() {
|
||||||
echo "$@" |logger -t cwmp.update -p info
|
echo "$@" |logger -t cwmp.update -p info
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_icwmp_update() {
|
handle_icwmp_update() {
|
||||||
local defwan vendorspecinf update
|
local cwmp_enable
|
||||||
|
config_load cwmp
|
||||||
|
|
||||||
update="0"
|
config_get_bool cwmp_enable cpe enable 1
|
||||||
defwan="$(uci -q get cwmp.cpe.default_wan_interface)"
|
if [ "$cwmp_enable" = "0" ]; then
|
||||||
vendorspecinf="$(ifstatus "${defwan}" | jsonfilter -e "@.data.vendorspecinf")"
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
log "Handling dhcp option value [${vendorspecinf}]"
|
status="$(ubus call tr069 status |jsonfilter -qe '@.last_session.status')"
|
||||||
[ -n "$vendorspecinf" ] && {
|
if [ "$status" != "running" ]; then
|
||||||
local url old_url
|
log "Trigger out of bound inform, since last inform status was failure"
|
||||||
local prov_code old_prov_code
|
ubus -t 10 call tr069 inform >/dev/null 2>&1
|
||||||
local min_wait_interval old_min_wait_interval
|
# Handle timeout or tr069 object not found
|
||||||
local retry_interval_multiplier old_retry_interval_multiplier
|
if [ "$?" -eq 7 ] || [ "$?" -eq 4 ]; then
|
||||||
|
log "Restarting icwmp tr069 object"
|
||||||
old_url="$(uci -q get cwmp.acs.dhcp_url)"
|
|
||||||
old_prov_code="$(uci -q get cwmp.cpe.dhcp_provisioning_code)"
|
|
||||||
old_min_wait_interval="$(uci -q get cwmp.acs.dhcp_retry_min_wait_interval)"
|
|
||||||
old_retry_interval_multiplier="$(uci -q get cwmp.acs.dhcp_retry_interval_multiplier)"
|
|
||||||
|
|
||||||
case $vendorspecinf in
|
|
||||||
http://*|https://*)
|
|
||||||
url="${vendorspecinf}"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
for optval in $vendorspecinf; do
|
|
||||||
case $optval in
|
|
||||||
1=*)
|
|
||||||
url="$(echo "$optval" | cut -d"=" -f2-)"
|
|
||||||
;;
|
|
||||||
2=*)
|
|
||||||
prov_code="$(echo "$optval" | cut -d"=" -f2-)"
|
|
||||||
;;
|
|
||||||
3=*)
|
|
||||||
min_wait_interval="$(echo "$optval" | cut -d"=" -f2-)"
|
|
||||||
;;
|
|
||||||
4=*)
|
|
||||||
retry_interval_multiplier="$(echo "$optval" | cut -d"=" -f2-)"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -n "$url" ]; then
|
|
||||||
if [ "${url}" != "${old_url}" ]; then
|
|
||||||
log "## icwmp url[${old_url}] changed to [${url}]"
|
|
||||||
uci -q set cwmp.acs.dhcp_url="$url"
|
|
||||||
update=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -n "$prov_code" ]; then
|
|
||||||
if [ "${prov_code}" != "${old_prov_code}" ]; then
|
|
||||||
log "## icwmp prov_code[${old_prov_code}] changed to [${prov_code}]"
|
|
||||||
uci -q set cwmp.cpe.dhcp_provisioning_code="$prov_code"
|
|
||||||
update=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -n "$min_wait_interval" ]; then
|
|
||||||
if [ "${min_wait_interval}" != "${old_min_wait_interval}" ]; then
|
|
||||||
log "## icwmp min_wait_interval[${old_min_wait_interval}] changed to [${min_wait_interval}]"
|
|
||||||
uci -q set cwmp.acs.dhcp_retry_min_wait_interval="$min_wait_interval"
|
|
||||||
update=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -n "$retry_interval_multiplier" ]; then
|
|
||||||
if [ "${retry_interval_multiplier}" != "${old_retry_interval_multiplier}" ]; then
|
|
||||||
log "## icwmp retry_interval_multiplier[${old_retry_interval_multiplier}] changed to [${retry_interval_multiplier}]"
|
|
||||||
uci -q set cwmp.acs.dhcp_retry_interval_multiplier="$retry_interval_multiplier"
|
|
||||||
update=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
if [ "${update}" -eq "1" ]; then
|
|
||||||
log "CWMP uci changes, reload cwmp with uci commit"
|
|
||||||
ubus call uci commit '{"config":"cwmp"}'
|
|
||||||
else
|
|
||||||
if ubus list tr069 >/dev/null 2>&1 ; then
|
|
||||||
log "Trigger out of bound inform"
|
|
||||||
ubus call tr069 inform
|
|
||||||
else
|
|
||||||
log "Restarting icwmp tr069 object not found"
|
|
||||||
/etc/init.d/icwmpd restart
|
/etc/init.d/icwmpd restart
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_icwmp_update
|
handle_icwmp_update $@
|
||||||
|
|||||||
@@ -15,6 +15,34 @@ log() {
|
|||||||
echo "${@}"|logger -t cwmp.init -p info
|
echo "${@}"|logger -t cwmp.init -p info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
regenerate_ssl_link()
|
||||||
|
{
|
||||||
|
local cert_dir all_file rehash
|
||||||
|
|
||||||
|
cert_dir="${1}"
|
||||||
|
[ ! -d "${cert_dir}" ] && return 0;
|
||||||
|
|
||||||
|
### Generate all ssl link for pem certicates ###
|
||||||
|
all_file=$(ls $cert_dir/*.pem 2>/dev/null)
|
||||||
|
if [ -n "${all_file}" ]; then
|
||||||
|
for cfile in $all_file; do
|
||||||
|
rehash="$(openssl x509 -hash -noout -in $cfile)"
|
||||||
|
[ -f ${cert_dir}/${rehash}.0 ] || \
|
||||||
|
ln -s $cfile $cert_dir/${rehash}.0
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
### Generate all ssl link for crt certicates ###
|
||||||
|
all_file=$(ls $cert_dir/*.crt 2>/dev/null)
|
||||||
|
if [ -n "${all_file}" ]; then
|
||||||
|
for cfile in $all_file; do
|
||||||
|
rehash="$(openssl x509 -hash -noout -in $cfile)"
|
||||||
|
[ -f ${cert_dir}/${rehash}.0 ] || \
|
||||||
|
ln -s $cfile $cert_dir/${rehash}.0
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
enable_dhcp_option43() {
|
enable_dhcp_option43() {
|
||||||
local wan="${1}"
|
local wan="${1}"
|
||||||
|
|
||||||
@@ -102,12 +130,13 @@ validate_acs_section()
|
|||||||
'periodic_inform_interval:uinteger' \
|
'periodic_inform_interval:uinteger' \
|
||||||
'periodic_inform_time:string' \
|
'periodic_inform_time:string' \
|
||||||
'url:string' \
|
'url:string' \
|
||||||
|
'dhcp_discovery:string' \
|
||||||
'dhcp_url:string' \
|
'dhcp_url:string' \
|
||||||
'compression:or("GZIP","Deflate","Disabled")' \
|
'compression:or("GZIP","Deflate","Disabled")' \
|
||||||
'retry_min_wait_interval:range(1, 65535)' \
|
'retry_min_wait_interval:range(1, 65535)' \
|
||||||
'retry_interval_multiplier:range(1000, 65535)' \
|
'retry_interval_multiplier:range(1000, 65535)' \
|
||||||
'https_ssl_capath:file' \
|
'ipv6_enable:bool' \
|
||||||
'ipv6_enable:bool'
|
'ssl_capath:string'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,6 +165,7 @@ validate_cpe_section()
|
|||||||
}
|
}
|
||||||
|
|
||||||
validate_defaults() {
|
validate_defaults() {
|
||||||
|
local ssl_capath
|
||||||
config_load cwmp
|
config_load cwmp
|
||||||
|
|
||||||
validate_acs_section || {
|
validate_acs_section || {
|
||||||
@@ -143,10 +173,12 @@ validate_defaults() {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
[ -z "${url}" ] && [ -z "${dhcp_url}" ] && {
|
# Put the cert pem file in keep list
|
||||||
log "ACS url is empty can't start"
|
if [ -d "${ssl_capath}" ]; then
|
||||||
return 1;
|
if ! grep "${ssl_capath}" /lib/upgrade/keep.d/icwmp; then
|
||||||
}
|
echo "${ssl_capath}"'/*.pem' >> /lib/upgrade/keep.d/icwmp
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
validate_cpe_section || {
|
validate_cpe_section || {
|
||||||
log "Validation of cpe section failed"
|
log "Validation of cpe section failed"
|
||||||
@@ -156,26 +188,37 @@ validate_defaults() {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boot() {
|
||||||
|
local dhcp_discovery="0"
|
||||||
|
|
||||||
|
config_load cwmp
|
||||||
|
config_get dhcp_discovery acs dhcp_discovery "0"
|
||||||
|
|
||||||
|
if [ "${dhcp_discovery}" == "enable" ] || [ "${dhcp_discovery}" == "1" ]; then
|
||||||
|
# Set dhcp option 43 if not already configured
|
||||||
|
config_get wan_interface cpe default_wan_interface "wan"
|
||||||
|
enable_dhcp_option43 "${wan_interface}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
config_get ssl_capath acs ssl_capath
|
||||||
|
|
||||||
|
if [ -n "${ssl_capath}" ]; then
|
||||||
|
regenerate_ssl_link "${ssl_capath}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
local enable_cwmp
|
local enable_cwmp
|
||||||
local wan_interface
|
|
||||||
local dhcp_discovery
|
|
||||||
|
|
||||||
config_load cwmp
|
config_load cwmp
|
||||||
config_get_bool enable_cwmp cpe enable 1
|
config_get_bool enable_cwmp cpe enable 1
|
||||||
config_get dhcp_discovery acs dhcp_discovery
|
|
||||||
config_get wan_interface cpe default_wan_interface "wan"
|
|
||||||
|
|
||||||
if [ "$enable_cwmp" = "0" ] || [ "$enable_cwmp" = "false" ]; then
|
if [ "$enable_cwmp" = "0" ]; then
|
||||||
log "CWMP is not enabled"
|
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set dhcp option 43 if dhcp discovery enabled
|
|
||||||
if [ "${dhcp_discovery}" == "enable" ] || [ "${dhcp_discovery}" == "1" ]; then
|
|
||||||
enable_dhcp_option43 "${wan_interface}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ -f /sbin/netifd ] && log "Waiting for Network to be started ..." && ubus -t 5 wait_for network.interface
|
[ -f /sbin/netifd ] && log "Waiting for Network to be started ..." && ubus -t 5 wait_for network.interface
|
||||||
[ -f /usr/sbin/dnsmasq ] && log "Waiting for DNS Proxy to be started ..." && ubus -t 5 wait_for dnsmasq
|
[ -f /usr/sbin/dnsmasq ] && log "Waiting for DNS Proxy to be started ..." && ubus -t 5 wait_for dnsmasq
|
||||||
[ -f /etc/config/dhcp ] && log "Waiting for DNS Server(s) ..." && wait_for_resolvfile 20
|
[ -f /etc/config/dhcp ] && log "Waiting for DNS Server(s) ..." && wait_for_resolvfile 20
|
||||||
@@ -205,9 +248,20 @@ service_stopped()
|
|||||||
}
|
}
|
||||||
|
|
||||||
reload_service() {
|
reload_service() {
|
||||||
log "Reloading CWMP client"
|
config_load cwmp
|
||||||
ubus -t 1 call tr069 command '{"command":"reload"}'
|
config_get_bool enable_cwmp cpe enable 1
|
||||||
if [ "$?" -ne "0" ]; then
|
|
||||||
|
if [ "$enable_cwmp" = "0" ]; then
|
||||||
|
stop
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
status="$(ubus -t 1 call tr069 status |jsonfilter -qe '@.cwmp.status')"
|
||||||
|
if [ "$status" = "up" ]; then
|
||||||
|
ubus -t 1 call tr069 command '{"command":"reload"}'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$status" = "init" ] || [ "$?" -ne "0" ]; then
|
||||||
log "Restarting CWMP client"
|
log "Restarting CWMP client"
|
||||||
stop
|
stop
|
||||||
start
|
start
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
# Copy defaults by the factory to the cwmp UCI user section.
|
# Copy defaults by the factory to the cwmp UCI user section.
|
||||||
|
config_load cwmp
|
||||||
|
|
||||||
# Get Manufacturer OUI.
|
# Get Manufacturer OUI.
|
||||||
oui=$(uci -q get cwmp.cpe.manufacturer_oui)
|
config_get oui cpe manufacturer_oui ""
|
||||||
if [ -z "${oui}" ]; then
|
if [ -z "${oui}" ]; then
|
||||||
oui=$(db -q get device.deviceinfo.ManufacturerOUI)
|
oui=$(db -q get device.deviceinfo.ManufacturerOUI)
|
||||||
fi
|
fi
|
||||||
@@ -9,24 +13,29 @@ fi
|
|||||||
oui=$(echo "${oui}" | tr 'a-f' 'A-F')
|
oui=$(echo "${oui}" | tr 'a-f' 'A-F')
|
||||||
|
|
||||||
# Get system serial number.
|
# Get system serial number.
|
||||||
serial=$(uci -q get cwmp.cpe.serial_number)
|
config_get serial cpe serial_number ""
|
||||||
if [ -z "${serial}" ]; then
|
if [ -z "${serial}" ]; then
|
||||||
serial=$(db -q get device.deviceinfo.SerialNumber)
|
serial=$(db -q get device.deviceinfo.SerialNumber)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get userid values
|
# Get userid values
|
||||||
acs_userid=$(uci -q get cwmp.acs.userid)
|
config_get acs_userid acs userid ""
|
||||||
cpe_userid=$(uci -q get cwmp.cpe.userid)
|
config_get cpe_userid cpe userid ""
|
||||||
|
|
||||||
# Only set if they are empty
|
# Only set if they are empty
|
||||||
if [ -z "$acs_userid" ]
|
if [ -z "${acs_userid}" ]; then
|
||||||
then
|
|
||||||
uci -q set cwmp.acs.userid="${oui}-${serial}"
|
uci -q set cwmp.acs.userid="${oui}-${serial}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$cpe_userid" ]
|
if [ -z "${cpe_userid}" ]; then
|
||||||
then
|
|
||||||
uci -q set cwmp.cpe.userid="${oui}-${serial}"
|
uci -q set cwmp.cpe.userid="${oui}-${serial}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Fix the cwmp.cpe.enable parameter
|
||||||
|
# set default to 1 if not defined
|
||||||
|
config_get enable_cwmp cpe enable ""
|
||||||
|
if [ -z "${enable_cwmp}" ]; then
|
||||||
|
uci -q set cwmp.cpe.enable="1"
|
||||||
|
fi
|
||||||
|
|
||||||
# No need for commit here, it is done by uci_apply_defaults().
|
# No need for commit here, it is done by uci_apply_defaults().
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. /lib/functions.sh
|
|
||||||
|
|
||||||
regenerate_ssl_link(){
|
|
||||||
[ ! -d "/etc/ssl/certs" ] && return 0;
|
|
||||||
[ ! -f "/etc/ssl/certs/*.pem" ] && return 0;
|
|
||||||
|
|
||||||
local cert_dir="/etc/ssl/certs"
|
|
||||||
local all_file=$(ls $cert_dir/*.pem)
|
|
||||||
|
|
||||||
for cfile in $all_file
|
|
||||||
do
|
|
||||||
ln -s $cfile $cert_dir/$(openssl x509 -hash -noout -in $cfile).0
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
regenerate_ssl_link
|
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2021 IOPSYS
|
# Copyright (C) 2021-2022 IOPSYS
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=ieee1905
|
PKG_NAME:=ieee1905
|
||||||
PKG_VERSION:=4.7.4
|
PKG_VERSION:=4.10.3
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=efe39a957f8512243e6ee6044e91d8f5a97c318e
|
PKG_SOURCE_VERSION:=3781ec6784f4186a6b7e93c83dcccbbf63ebe465
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
|
|||||||
@@ -3,20 +3,24 @@ config ieee1905 'ieee1905'
|
|||||||
option extension '1'
|
option extension '1'
|
||||||
list extmodule 'map'
|
list extmodule 'map'
|
||||||
option registrar '2 5'
|
option registrar '2 5'
|
||||||
|
# option macaddress '0a:1b:2c:3d:4e:50'
|
||||||
|
|
||||||
|
config al-iface
|
||||||
|
option enabled '1'
|
||||||
|
option ifname 'br-lan'
|
||||||
|
option type 'bridge'
|
||||||
|
|
||||||
|
# ap sections are auto-generated/overwritten during onboarding
|
||||||
|
#
|
||||||
config ap
|
config ap
|
||||||
option band '2'
|
option band '2'
|
||||||
option ssid 'TestSSID.2'
|
option ssid 'IOWRT-2.4GHz'
|
||||||
option encryption 'psk2'
|
option encryption 'sae-mixed'
|
||||||
option key '5555500000'
|
option key '1234567890'
|
||||||
|
|
||||||
config ap
|
config ap
|
||||||
option band '5'
|
option band '5'
|
||||||
option ssid 'TestSSID.5'
|
option ssid 'IOWRT-5GHz'
|
||||||
option encryption 'psk2'
|
option encryption 'sae-mixed'
|
||||||
option key '2222200000'
|
option key '1234567890'
|
||||||
|
|
||||||
config al-iface
|
|
||||||
option enabled 1
|
|
||||||
option ifname 'br-lan'
|
|
||||||
option type 'bridge'
|
|
||||||
22
ieee1905/files/etc/uci-defaults/30-set-ieee1905-al-macaddr
Normal file
22
ieee1905/files/etc/uci-defaults/30-set-ieee1905-al-macaddr
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
BMAC=$(db -q get hw.board.basemac)
|
||||||
|
BMAC=${BMAC//:/}
|
||||||
|
BMAC=${BMAC// /}
|
||||||
|
BMAC=$(printf "%12.12X" $((0x$BMAC)))
|
||||||
|
|
||||||
|
[ "$BMAC" == "" ] && exit 1
|
||||||
|
|
||||||
|
LMAC=$((0x$BMAC & 0xfeffffffffff))
|
||||||
|
LMAC=$(($LMAC | 0x020000000000))
|
||||||
|
LMAC=$(printf "%12.12X" $LMAC)
|
||||||
|
LMAC=$(echo $LMAC | sed -e 's/[0-9A-F]\{2\}/&:/g' -e 's/:$//')
|
||||||
|
|
||||||
|
mac=$(uci -q get ieee1905.ieee1905.macaddress)
|
||||||
|
|
||||||
|
[ "$mac" != "" ] && exit 0
|
||||||
|
|
||||||
|
uci set ieee1905.ieee1905.macaddress="$LMAC"
|
||||||
|
uci commit ieee1905
|
||||||
|
|
||||||
@@ -9,10 +9,10 @@ include $(TOPDIR)/rules.mk
|
|||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=inbd
|
PKG_NAME:=inbd
|
||||||
PKG_VERSION:=1.2.2
|
PKG_VERSION:=1.2.3
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_VERSION:=10f765f3d0fcc226b6ecf0c481598c9e7f76315e
|
PKG_SOURCE_VERSION:=d4e910a31039e0c0b7a539311eafcd716c36be77
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/inbd
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/inbd
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
|
|||||||
11
iop/config
11
iop/config
@@ -51,7 +51,6 @@ CONFIG_PACKAGE_wifimngr=y
|
|||||||
# Multi-AP #
|
# Multi-AP #
|
||||||
CONFIG_PACKAGE_ieee1905=y
|
CONFIG_PACKAGE_ieee1905=y
|
||||||
CONFIG_PACKAGE_map-topology=y
|
CONFIG_PACKAGE_map-topology=y
|
||||||
CONFIG_PACKAGE_wfadatad=y
|
|
||||||
CONFIG_PACKAGE_wfadatad-collector=y
|
CONFIG_PACKAGE_wfadatad-collector=y
|
||||||
|
|
||||||
# Network #
|
# Network #
|
||||||
@@ -65,15 +64,16 @@ CONFIG_PACKAGE_questd=y
|
|||||||
CONFIG_PACKAGE_rulengd=y
|
CONFIG_PACKAGE_rulengd=y
|
||||||
|
|
||||||
# TR-x69 #
|
# TR-x69 #
|
||||||
CONFIG_PACKAGE_uspd=y
|
CONFIG_PACKAGE_uspd-mbedtls=y
|
||||||
CONFIG_PACKAGE_icwmp=y
|
CONFIG_PACKAGE_icwmp-mbedtls=y
|
||||||
CONFIG_PACKAGE_obuspa=y
|
CONFIG_PACKAGE_obuspa=y
|
||||||
CONFIG_PACKAGE_bulkdata=y
|
CONFIG_PACKAGE_bulkdata=y
|
||||||
CONFIG_PACKAGE_periodicstats=y
|
CONFIG_PACKAGE_periodicstats=y
|
||||||
CONFIG_PACKAGE_stunc=m
|
CONFIG_PACKAGE_stunc-mbedtls=m
|
||||||
CONFIG_PACKAGE_swmodd=m
|
CONFIG_PACKAGE_swmodd=m
|
||||||
CONFIG_PACKAGE_twamp=m
|
CONFIG_PACKAGE_twamp=m
|
||||||
CONFIG_PACKAGE_udpechoserver=m
|
CONFIG_PACKAGE_udpecho-client=m
|
||||||
|
CONFIG_PACKAGE_udpecho-server=m
|
||||||
CONFIG_PACKAGE_xmppc=m
|
CONFIG_PACKAGE_xmppc=m
|
||||||
|
|
||||||
# WebGUI #
|
# WebGUI #
|
||||||
@@ -133,6 +133,7 @@ CONFIG_LIBCURL_CRYPTO_AUTH=y
|
|||||||
# CONFIG_LIBCURL_MBEDTLS is not set
|
# CONFIG_LIBCURL_MBEDTLS is not set
|
||||||
CONFIG_LIBCURL_OPENSSL=y
|
CONFIG_LIBCURL_OPENSSL=y
|
||||||
CONFIG_PACKAGE_ethtool=y
|
CONFIG_PACKAGE_ethtool=y
|
||||||
|
CONFIG_PACKAGE_ip-bridge=y
|
||||||
CONFIG_PACKAGE_ip-full=y
|
CONFIG_PACKAGE_ip-full=y
|
||||||
CONFIG_PACKAGE_iperf3=y
|
CONFIG_PACKAGE_iperf3=y
|
||||||
CONFIG_PACKAGE_ipset=y
|
CONFIG_PACKAGE_ipset=y
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (C) 2012-2014 OpenWrt.org
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
|
|
||||||
PKG_NAME:=libmicroxml
|
|
||||||
PKG_VERSION:=2012-06-11
|
|
||||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/mirror/microxml.git
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_SOURCE_VERSION:=72965423184f24cc0b963d91c2d1863cdb01b6aa
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
|
||||||
PKG_MIRROR_HASH:=skip
|
|
||||||
PKG_LICENSE:=LGPL-2.0
|
|
||||||
PKG_LICENSE_FILES:=COPYING
|
|
||||||
|
|
||||||
PKG_FIXUP:=autoreconf
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
define Package/libmicroxml
|
|
||||||
SECTION:=libs
|
|
||||||
CATEGORY:=Libraries
|
|
||||||
TITLE:=XML library
|
|
||||||
MAINTAINER:=Luka Perkov <luka@openwrt.org>
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/libmicroxml/description
|
|
||||||
A micro sized XML library
|
|
||||||
endef
|
|
||||||
|
|
||||||
CONFIGURE_ARGS += \
|
|
||||||
--disable-threads \
|
|
||||||
--enable-static \
|
|
||||||
--enable-shared
|
|
||||||
|
|
||||||
define Build/InstallDev
|
|
||||||
$(INSTALL_DIR) $(1)/usr/include
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/microxml.h $(1)/usr/include
|
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/libmicroxml.so* $(1)/usr/lib
|
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/microxml.pc $(1)/usr/lib/pkgconfig
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/libmicroxml/install
|
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/libmicroxml.so* $(1)/usr/lib
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage,libmicroxml))
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
diff --git a/mxml-file.c b/mxml-file.c
|
|
||||||
index 02eca9d..f10d202 100644
|
|
||||||
--- a/mxml-file.c
|
|
||||||
+++ b/mxml-file.c
|
|
||||||
@@ -363,9 +363,12 @@ mxmlSaveFile(mxml_node_t *node, /* I - Node to write */
|
|
||||||
* Write the node...
|
|
||||||
*/
|
|
||||||
|
|
||||||
- if ((col = mxml_write_node(node, fp, cb, 0, mxml_file_putc, global)) < 0)
|
|
||||||
+ if ((col = mxml_write_node(node, fp, cb, 0, mxml_file_putc, global)) < 0){
|
|
||||||
+ global_free(global);
|
|
||||||
return (-1);
|
|
||||||
-
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ global_free(global);
|
|
||||||
if (col > 0)
|
|
||||||
if (putc('\n', fp) < 0)
|
|
||||||
return (-1);
|
|
||||||
@@ -1448,6 +1451,7 @@ mxml_load_data(
|
|
||||||
if ((buffer = malloc(64)) == NULL)
|
|
||||||
{
|
|
||||||
mxml_error("Unable to allocate string buffer!");
|
|
||||||
+ global_free(global);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2083,11 +2087,12 @@ mxml_load_data(
|
|
||||||
node->parent ? node->parent->value.element.name : "(null)");
|
|
||||||
|
|
||||||
mxmlDelete(first);
|
|
||||||
-
|
|
||||||
+ global_free(global);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ global_free(global);
|
|
||||||
if (parent)
|
|
||||||
return (parent);
|
|
||||||
else
|
|
||||||
@@ -2102,7 +2107,7 @@ error:
|
|
||||||
mxmlDelete(first);
|
|
||||||
|
|
||||||
free(buffer);
|
|
||||||
-
|
|
||||||
+ global_free(global);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/mxml-private.c b/mxml-private.c
|
|
||||||
index 4378ca3..ea6e452 100644
|
|
||||||
--- a/mxml-private.c
|
|
||||||
+++ b/mxml-private.c
|
|
||||||
@@ -41,6 +41,32 @@
|
|
||||||
* This code currently supports AIX, HP-UX, Linux, Mac OS X, Solaris, and
|
|
||||||
* Windows. It might work on the BSDs and IRIX, but I haven't tested that.
|
|
||||||
*/
|
|
||||||
+void *global_mem[16] = {0};
|
|
||||||
+
|
|
||||||
+static void *global_calloc(int x, int size)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+ void *m = calloc(x, size);
|
|
||||||
+ for (i = ((sizeof(global_mem)/sizeof(global_mem[0])) - 1); i > 0; i--) {
|
|
||||||
+ global_mem[i] = global_mem[i-1];
|
|
||||||
+ }
|
|
||||||
+ global_mem[0] = m;
|
|
||||||
+ return m;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void global_free(void *m)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+ if (m == NULL)
|
|
||||||
+ return;
|
|
||||||
+ for (i = ((sizeof(global_mem)/sizeof(global_mem[0])) - 1); i >= 0; i--) {
|
|
||||||
+ if (global_mem[i] == m) {
|
|
||||||
+ global_mem[i] = NULL;
|
|
||||||
+ free(m);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
|
|
||||||
#if defined(__sun) || defined(_AIX)
|
|
||||||
# pragma fini(_mxml_fini)
|
|
||||||
@@ -148,7 +174,6 @@ mxml_real_cb(mxml_node_t *node) /* I - Current node */
|
|
||||||
return (MXML_REAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
-
|
|
||||||
#ifdef HAVE_PTHREAD_H /**** POSIX threading ****/
|
|
||||||
# include <pthread.h>
|
|
||||||
|
|
||||||
@@ -190,7 +215,6 @@ _MXML_FINI(void)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-
|
|
||||||
/*
|
|
||||||
* '_mxml_global()' - Get global data.
|
|
||||||
*/
|
|
||||||
@@ -205,7 +229,7 @@ _mxml_global(void)
|
|
||||||
|
|
||||||
if ((global = (_mxml_global_t *)pthread_getspecific(_mxml_key)) == NULL)
|
|
||||||
{
|
|
||||||
- global = (_mxml_global_t *)calloc(1, sizeof(_mxml_global_t));
|
|
||||||
+ global = (_mxml_global_t *)global_calloc(1, sizeof(_mxml_global_t));
|
|
||||||
pthread_setspecific(_mxml_key, global);
|
|
||||||
|
|
||||||
global->num_entity_cbs = 1;
|
|
||||||
@@ -288,7 +312,7 @@ _mxml_global(void)
|
|
||||||
|
|
||||||
if ((global = (_mxml_global_t *)TlsGetValue(_mxml_tls_index)) == NULL)
|
|
||||||
{
|
|
||||||
- global = (_mxml_global_t *)calloc(1, sizeof(_mxml_global_t));
|
|
||||||
+ global = (_mxml_global_t *)global_calloc(1, sizeof(_mxml_global_t));
|
|
||||||
|
|
||||||
global->num_entity_cbs = 1;
|
|
||||||
global->entity_cbs[0] = _mxml_entity_cb;
|
|
||||||
diff --git a/mxml-private.h b/mxml-private.h
|
|
||||||
index c591208..72ed338 100644
|
|
||||||
--- a/mxml-private.h
|
|
||||||
+++ b/mxml-private.h
|
|
||||||
@@ -43,3 +43,4 @@ typedef struct _mxml_global_s
|
|
||||||
extern _mxml_global_t *_mxml_global(void);
|
|
||||||
extern int _mxml_entity_cb(const char *name);
|
|
||||||
|
|
||||||
+extern void global_free(void *m);
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=libtrace
|
PKG_NAME:=libtrace
|
||||||
PKG_VERSION:=3.0.22
|
PKG_VERSION:=3.0.23
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
@@ -72,11 +72,11 @@ endef
|
|||||||
|
|
||||||
define Package/libtrace/install
|
define Package/libtrace/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libtrace.so.* $(1)/usr/lib/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtrace.so.* $(1)/usr/lib/
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libwandio.so.* $(1)/usr/lib/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libwandio.so.* $(1)/usr/lib/
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump.so.* $(1)/usr/lib/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump.so.* $(1)/usr/lib/
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/libpacketdump
|
$(INSTALL_DIR) $(1)/usr/lib/libpacketdump
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump/*.so* $(1)/usr/lib/libpacketdump/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpacketdump/*.so* $(1)/usr/lib/libpacketdump/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libtrace-tools/install
|
define Package/libtrace-tools/install
|
||||||
|
|||||||
@@ -10,5 +10,8 @@ config AGENT_ISLAND_PREVENTION
|
|||||||
bool "Support Island Prevention"
|
bool "Support Island Prevention"
|
||||||
default y if MULTIAP_AGENT_ISLAND_PREVENTION
|
default y if MULTIAP_AGENT_ISLAND_PREVENTION
|
||||||
|
|
||||||
|
config AGENT_EASYMESH_R2_CERT
|
||||||
|
bool "Compile for WFA test bed"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2020-21 IOPSYS Software Solutions AB
|
# Copyright (C) 2020-22 IOPSYS Software Solutions AB
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=map-agent
|
PKG_NAME:=map-agent
|
||||||
PKG_VERSION:=7.1.33
|
PKG_VERSION:=2.9.0.4
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_SOURCE_VERSION:=9d37e0b65571a6e5b9ad05bd79f49dc04d9a1dbb
|
PKG_SOURCE_VERSION:=4f06e11fc17f6c462960cbd8a9835b5a16b53e9c
|
||||||
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
|
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
|
||||||
|
|
||||||
PKG_LICENSE:=PROPRIETARY IOPSYS
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
@@ -66,6 +66,10 @@ ifeq ($(CONFIG_AGENT_ISLAND_PREVENTION),y)
|
|||||||
TARGET_CFLAGS += -DAGENT_ISLAND_PREVENTION
|
TARGET_CFLAGS += -DAGENT_ISLAND_PREVENTION
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_AGENT_EASYMESH_R2_CERT),y)
|
||||||
|
TARGET_CFLAGS += -DEASYMESH_R2_CERT
|
||||||
|
endif
|
||||||
|
|
||||||
MAKE_PATH:=src
|
MAKE_PATH:=src
|
||||||
|
|
||||||
define Package/map-agent/install
|
define Package/map-agent/install
|
||||||
|
|||||||
@@ -1,34 +1,132 @@
|
|||||||
config agent 'agent'
|
config agent 'agent'
|
||||||
option enabled '1'
|
option enabled '1'
|
||||||
option debug '6'
|
option debug '0'
|
||||||
option profile '2'
|
option profile '2'
|
||||||
option al_bridge 'br-lan'
|
option al_bridge 'br-lan'
|
||||||
|
option netdev 'wlan'
|
||||||
|
option island_prevention '0'
|
||||||
|
option eth_onboards_wifi_bhs '0'
|
||||||
|
# option controller_macaddr '0a:1b:2c:3d:4e:50'
|
||||||
|
|
||||||
|
config dynamic_backhaul
|
||||||
|
option missing_bh_timer '60'
|
||||||
|
option missing_bh_reconfig_timer '1800'
|
||||||
|
|
||||||
|
config controller_select
|
||||||
|
option id 'auto'
|
||||||
|
option probe_int '20'
|
||||||
|
option retry_int '9'
|
||||||
|
option autostart '1'
|
||||||
|
option local '0'
|
||||||
|
|
||||||
|
config radio
|
||||||
|
option device 'phy0'
|
||||||
|
option band '2'
|
||||||
|
# options below are auto-generated during onboarding
|
||||||
|
# option steer_policy '0'
|
||||||
|
# option util_threshold '0'
|
||||||
|
# option rcpi_threshold '70'
|
||||||
|
# option report_rcpi_threshold '80'
|
||||||
|
# option rcpi_hysteresis_margin '0'
|
||||||
|
# option report_util_threshold '0'
|
||||||
|
# option include_sta_stats '1'
|
||||||
|
# option include_sta_metric '1'
|
||||||
|
|
||||||
|
config radio
|
||||||
|
option device 'phy1'
|
||||||
|
option band '5'
|
||||||
|
# options below are auto-generated during onboarding
|
||||||
|
# option steer_policy '0'
|
||||||
|
# option util_threshold '0'
|
||||||
|
# option rcpi_threshold '86'
|
||||||
|
# option report_rcpi_threshold '96'
|
||||||
|
# option rcpi_hysteresis_margin '0'
|
||||||
|
# option report_util_threshold '0'
|
||||||
|
# option include_sta_stats '1'
|
||||||
|
# option include_sta_metric '1'
|
||||||
|
|
||||||
|
config bsta
|
||||||
|
option enabled '1'
|
||||||
|
option ifname 'wlan0'
|
||||||
|
option band '2'
|
||||||
|
option device 'phy0'
|
||||||
|
option priority '2'
|
||||||
|
# options below are auto-generated during onboarding
|
||||||
|
# option ssid 'MAP-BH-2.4GHz'
|
||||||
|
# option encryption 'sae-mixed'
|
||||||
|
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
|
||||||
|
# option onboarded '1'
|
||||||
|
# option bssid '0a:1b:2c:3d:4e:53'
|
||||||
|
# option vid '1'
|
||||||
|
|
||||||
|
config bsta
|
||||||
|
option enabled '1'
|
||||||
|
option ifname 'wlan1'
|
||||||
|
option band '5'
|
||||||
|
option device 'phy1'
|
||||||
|
option priority '0'
|
||||||
|
# options below are auto-generated during onboarding
|
||||||
|
# option ssid 'MAP-BH-5GHz'
|
||||||
|
# option encryption 'sae-mixed'
|
||||||
|
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
|
||||||
|
# option onboarded '1'
|
||||||
|
# option bssid '0a:1b:2c:3d:4e:54'
|
||||||
|
# option vid '1'
|
||||||
|
|
||||||
|
# ap sections and policy section are
|
||||||
|
# auto-generated during onboarding
|
||||||
|
#
|
||||||
#config ap
|
#config ap
|
||||||
# option ifname 'wl0'
|
|
||||||
# option steer 'rssi bssload'
|
|
||||||
# list exclude '00:11:22:33:44:55'
|
|
||||||
# list exclude_btm '00:aa:bb:cc:dd:ee'
|
|
||||||
# list assoc_ctrl '00:10:20:30:40:50'
|
|
||||||
# option btm_retry '3'
|
|
||||||
# option btm_retry_secs '180'
|
|
||||||
# option fallback_legacy '1'
|
|
||||||
# option steer_legacy_reassoc_secs '30'
|
|
||||||
# option steer_legacy_retry_secs '3600'
|
|
||||||
# option assoc_ctrl_secs '30'
|
|
||||||
# option band '2'
|
|
||||||
# option type 'fronthaul'
|
|
||||||
|
|
||||||
#config ap
|
|
||||||
# option ifname 'wl1'
|
|
||||||
# option steer 'rssi bssload'
|
|
||||||
# list exclude '00:11:22:33:44:55'
|
|
||||||
# list exclude_btm '00:aa:bb:cc:dd:ee'
|
|
||||||
# option band '5'
|
|
||||||
# option type 'fronthaul'
|
|
||||||
|
|
||||||
#config bsta
|
|
||||||
# option ifname 'apclii0'
|
|
||||||
# option enabled '1'
|
# option enabled '1'
|
||||||
# option onboarded '0'
|
# option ifname 'wlan0-1'
|
||||||
# option disallow_bsta '1 # bitmap, 1 for disallow p1, 2 to disallow p2, 3 to disallow both (probably never applicable)
|
# option band '2'
|
||||||
|
# option device 'phy0'
|
||||||
|
# option type 'fronthaul'
|
||||||
|
# option ssid 'IOWRT-2.4GHz'
|
||||||
|
# option encryption 'sae-mixed+aes'
|
||||||
|
# option key '1234567890'
|
||||||
|
# option vid '1'
|
||||||
|
|
||||||
|
#config ap
|
||||||
|
# option enabled '1'
|
||||||
|
# option ifname 'wlan0-2'
|
||||||
|
# option band '2'
|
||||||
|
# option device 'phy0'
|
||||||
|
# option type 'backhaul'
|
||||||
|
# option ssid 'MAP-BH-2.4GHz'
|
||||||
|
# option encryption 'sae+aes'
|
||||||
|
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
|
||||||
|
# option disallow_bsta '0'
|
||||||
|
# option vid '1'
|
||||||
|
|
||||||
|
#config ap
|
||||||
|
# option enabled '1'
|
||||||
|
# option ifname 'wlan1-1'
|
||||||
|
# option band '5'
|
||||||
|
# option device 'phy1'
|
||||||
|
# option type 'fronthaul'
|
||||||
|
# option ssid 'IOWRT-5GHz'
|
||||||
|
# option encryption 'sae-mixed+aes'
|
||||||
|
# option key '1234567890'
|
||||||
|
# option vid '1'
|
||||||
|
|
||||||
|
#config ap
|
||||||
|
# option enabled '1'
|
||||||
|
# option ifname 'wlan1-2'
|
||||||
|
# option band '5'
|
||||||
|
# option device 'phy1'
|
||||||
|
# option type 'backhaul'
|
||||||
|
# option ssid 'MAP-BH-5GHz'
|
||||||
|
# option encryption 'sae+aes'
|
||||||
|
# option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
|
||||||
|
# option disallow_bsta '0'
|
||||||
|
# option vid '1'
|
||||||
|
|
||||||
|
#config policy
|
||||||
|
# option report_interval '0'
|
||||||
|
# option pvid '1'
|
||||||
|
# option pcp_default '0'
|
||||||
|
# option report_scan '0'
|
||||||
|
# option report_sta_assocfails '0'
|
||||||
|
# option report_sta_assocfails_rate '0'
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,8 @@ validate_agent_section() {
|
|||||||
'vlan_segregation:bool:false' \
|
'vlan_segregation:bool:false' \
|
||||||
'resend_num:uinteger:0' \
|
'resend_num:uinteger:0' \
|
||||||
'dyn_cntlr_sync:bool:true' \
|
'dyn_cntlr_sync:bool:true' \
|
||||||
'island_prevention:bool:true'
|
'island_prevention:bool:false' \
|
||||||
|
'eth_onboards_wifi_bhs:bool:false'
|
||||||
|
|
||||||
|
|
||||||
[ "$?" -ne 0 ] && {
|
[ "$?" -ne 0 ] && {
|
||||||
@@ -148,7 +149,8 @@ validate_radio_section() {
|
|||||||
'include_sta_stats:bool:false' \
|
'include_sta_stats:bool:false' \
|
||||||
'include_sta_metric:bool:false' \
|
'include_sta_metric:bool:false' \
|
||||||
'rcpi_hysteresis_margin:range(0,255)' \
|
'rcpi_hysteresis_margin:range(0,255)' \
|
||||||
'report_util_threshold:range(0,255)'
|
'report_util_threshold:range(0,255)' \
|
||||||
|
'encryption:or("sae", "psk2", "sae-mixed")'
|
||||||
|
|
||||||
[ "$?" -ne 0 ] && {
|
[ "$?" -ne 0 ] && {
|
||||||
logger -s -t "mapagent" "Validation of radio section failed"
|
logger -s -t "mapagent" "Validation of radio section failed"
|
||||||
@@ -185,6 +187,8 @@ validate_dyn_bh_section() {
|
|||||||
|
|
||||||
uci_validate_section mapagent $section "${1}" \
|
uci_validate_section mapagent $section "${1}" \
|
||||||
'missing_bh_timer:range(1,255)'
|
'missing_bh_timer:range(1,255)'
|
||||||
|
uci_validate_section mapagent $section "${1}" \
|
||||||
|
'missing_bh_reconfig_timer:range(0,65535)'
|
||||||
|
|
||||||
[ "$?" -ne 0 ] && {
|
[ "$?" -ne 0 ] && {
|
||||||
logger -s -t "mapagent" "Validation of dynamic backhaul section failed"
|
logger -s -t "mapagent" "Validation of dynamic backhaul section failed"
|
||||||
|
|||||||
13
map-agent/files/etc/uci-defaults/991-map-agent-unset-pvid
Executable file
13
map-agent/files/etc/uci-defaults/991-map-agent-unset-pvid
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
|
unset_pvid() {
|
||||||
|
local section=$1
|
||||||
|
|
||||||
|
uci -q set mapagent.${section}.pvid="0"
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load mapagent
|
||||||
|
|
||||||
|
config_foreach unset_pvid policy
|
||||||
@@ -207,7 +207,7 @@ write_credentials() {
|
|||||||
#echo applying bk_ssid = "$bk_ssid" bk_key = "$bk_key"
|
#echo applying bk_ssid = "$bk_ssid" bk_key = "$bk_key"
|
||||||
|
|
||||||
# subshell in hopes to maintain mapagent config loaded
|
# subshell in hopes to maintain mapagent config loaded
|
||||||
echo $(mapagent_apply_wireless $ifname "$bk_ssid" "$bk_key") 2> /dev/null
|
(mapagent_apply_wireless $ifname "$bk_ssid" "$bk_key")
|
||||||
}
|
}
|
||||||
|
|
||||||
mapagent_find_bbss() {
|
mapagent_find_bbss() {
|
||||||
@@ -356,7 +356,7 @@ write_bsta_config() {
|
|||||||
|
|
||||||
#echo result diff = $diff > /dev/console
|
#echo result diff = $diff > /dev/console
|
||||||
[ "$diff" == "1" ] && {
|
[ "$diff" == "1" ] && {
|
||||||
config_foreach mapagent_apply_bssid_same_band bsta
|
(config_foreach mapagent_apply_bssid_same_band bsta)
|
||||||
#ubus call uci commit '{"config":"wireless"}'
|
#ubus call uci commit '{"config":"wireless"}'
|
||||||
#echo reloading wireless > /dev/console
|
#echo reloading wireless > /dev/console
|
||||||
}
|
}
|
||||||
@@ -377,7 +377,7 @@ teardown_iface() {
|
|||||||
|
|
||||||
[ "$ifname" != "$map_ifname" ] && return
|
[ "$ifname" != "$map_ifname" ] && return
|
||||||
|
|
||||||
uci -q set wireless.${section}.start_disabled="1"
|
uci -q set wireless.${section}.disabled="1"
|
||||||
uci -q set wireless.${section}.ssid="DISABLED-SSID"
|
uci -q set wireless.${section}.ssid="DISABLED-SSID"
|
||||||
uci -q set wireless.${section}.key="DISABLED-KEY"
|
uci -q set wireless.${section}.key="DISABLED-KEY"
|
||||||
uci -q delete wireless.${section}.multi_ap_backhaul_ssid
|
uci -q delete wireless.${section}.multi_ap_backhaul_ssid
|
||||||
@@ -406,7 +406,7 @@ teardown_iface() {
|
|||||||
uci -q set mapagent.${section}.key="DISABLED-KEY"
|
uci -q set mapagent.${section}.key="DISABLED-KEY"
|
||||||
|
|
||||||
# subshell in hopes to maintain mapagent config loaded
|
# subshell in hopes to maintain mapagent config loaded
|
||||||
$(mapagent_teardown_wireless $ifname)
|
(mapagent_teardown_wireless $ifname)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -488,10 +488,12 @@ bsta_to_wireless() {
|
|||||||
|
|
||||||
mapagent_find_other_creds() {
|
mapagent_find_other_creds() {
|
||||||
#echo "trying to find other creds for $2" > /dev/console
|
#echo "trying to find other creds for $2" > /dev/console
|
||||||
|
local other_section="$2"
|
||||||
|
|
||||||
config_get band $1 band
|
config_get band $1 band
|
||||||
config_get onboarded $1 onboarded "0"
|
config_get onboarded $1 onboarded "0"
|
||||||
|
|
||||||
[ "$3" != "$band" -o "$onboarded" = "0" ] && return
|
[ "$4" != "$band" -o "$onboarded" = "0" ] && return
|
||||||
|
|
||||||
config_get ssid $1 ssid
|
config_get ssid $1 ssid
|
||||||
config_get key $1 key
|
config_get key $1 key
|
||||||
@@ -499,7 +501,12 @@ bsta_to_wireless() {
|
|||||||
config_get enabled $1 enabled "0"
|
config_get enabled $1 enabled "0"
|
||||||
config_get bssid $1 bssid
|
config_get bssid $1 bssid
|
||||||
|
|
||||||
echo $(mapagent_apply_wl_bsta $2 "$ssid" "$key" $encryption $4 "$bssid")
|
uci -q set mapagent.${other_section}.ssid="$ssid"
|
||||||
|
uci -q set mapagent.${other_section}.key="$key"
|
||||||
|
uci -q set mapagent.${other_section}.encryption=$encryption
|
||||||
|
uci -q set mapagent.${other_section}.bssid="$bssid"
|
||||||
|
uci commit mapagent
|
||||||
|
(mapagent_apply_wl_bsta "$3" "$ssid" "$key" $encryption "$5" "$bssid")
|
||||||
}
|
}
|
||||||
|
|
||||||
config_get band $1 band
|
config_get band $1 band
|
||||||
@@ -508,14 +515,14 @@ bsta_to_wireless() {
|
|||||||
config_get enabled $1 enabled "0"
|
config_get enabled $1 enabled "0"
|
||||||
|
|
||||||
if [ "$onboarded" = "0" ]; then
|
if [ "$onboarded" = "0" ]; then
|
||||||
config_foreach mapagent_find_other_creds bsta $ifname $band $enabled
|
config_foreach mapagent_find_other_creds bsta $1 $ifname $band $enabled
|
||||||
else
|
else
|
||||||
config_get ssid $1 ssid
|
config_get ssid $1 ssid
|
||||||
config_get key $1 key
|
config_get key $1 key
|
||||||
config_get encryption $1 encryption
|
config_get encryption $1 encryption
|
||||||
config_get bssid $1 bssid
|
config_get bssid $1 bssid
|
||||||
|
|
||||||
echo $(mapagent_apply_wl_bsta $ifname "$ssid" "$key" $encryption $enabled "$bssid")
|
(mapagent_apply_wl_bsta $ifname "$ssid" "$key" $encryption $enabled "$bssid")
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -665,7 +672,7 @@ bsta_scan_on_enabled() {
|
|||||||
|
|
||||||
bsta_enable_all() {
|
bsta_enable_all() {
|
||||||
mapagent_enable_bk() {
|
mapagent_enable_bk() {
|
||||||
config_get ifname $1 ifname "2"
|
config_get ifname $1 ifname
|
||||||
uci -q set mapagent.$1.enabled="1"
|
uci -q set mapagent.$1.enabled="1"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -676,6 +683,54 @@ bsta_enable_all() {
|
|||||||
bsta_scan_on_enabled
|
bsta_scan_on_enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bsta_clear_all_bssid() {
|
||||||
|
mapagent_remove_bssid() {
|
||||||
|
uci -q set mapagent.$1.enabled="1"
|
||||||
|
uci -q del mapagent.$1.bssid
|
||||||
|
}
|
||||||
|
|
||||||
|
wireless_remove_bssid() {
|
||||||
|
config_get mode $1 mode
|
||||||
|
config_get ifname $1 ifname
|
||||||
|
|
||||||
|
[ "$mode" != "sta" ] && return
|
||||||
|
|
||||||
|
uci -q del wireless.$1.bssid
|
||||||
|
wpa_cli -i "$ifname" bssid 0 00:00:00:00:00:00 > /dev/null 2>&1
|
||||||
|
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load mapagent
|
||||||
|
config_foreach mapagent_remove_bssid bsta
|
||||||
|
uci commit mapagent
|
||||||
|
|
||||||
|
config_load wireless
|
||||||
|
config_foreach wireless_remove_bssid wifi-iface
|
||||||
|
uci commit wireless
|
||||||
|
}
|
||||||
|
|
||||||
|
# arg1 = ifname arg2 = bssid
|
||||||
|
bsta_blacklist_bssid_set() {
|
||||||
|
local ifname="$1"
|
||||||
|
shift
|
||||||
|
local bssid="$@"
|
||||||
|
|
||||||
|
wpa_cli -i "$ifname" set_network 0 bssid_ignore "$bssid" > /dev/null 2>&1
|
||||||
|
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
bsta_blacklist_bssid_clear() {
|
||||||
|
mapagent_blacklist_by_band() {
|
||||||
|
config_get ifname $1 ifname
|
||||||
|
|
||||||
|
wpa_cli -i "$ifname" set_network 0 bssid_ignore "" > /dev/null 2>&1
|
||||||
|
wpa_cli -i "$ifname" save_config > /dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load mapagent
|
||||||
|
config_foreach mapagent_blacklist_by_band bsta
|
||||||
|
}
|
||||||
|
|
||||||
bsta_disable_lower_priority() {
|
bsta_disable_lower_priority() {
|
||||||
config_load mapagent
|
config_load mapagent
|
||||||
|
|
||||||
@@ -725,7 +780,7 @@ bsta_disable_lower_priority() {
|
|||||||
|
|
||||||
uci -q set mapagent.$1.enabled="$enabled"
|
uci -q set mapagent.$1.enabled="$enabled"
|
||||||
|
|
||||||
echo $(mapagent_apply_wl_bsta $ifname $enabled) > /dev/null
|
(mapagent_apply_wl_bsta $ifname $enabled) > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
local bsta=$1
|
local bsta=$1
|
||||||
@@ -759,6 +814,12 @@ bsta_use_link() {
|
|||||||
local bsta=$1
|
local bsta=$1
|
||||||
|
|
||||||
config_foreach mapagent_disable_bk bsta $bsta
|
config_foreach mapagent_disable_bk bsta $bsta
|
||||||
|
|
||||||
|
noht=$(iw $bsta info | grep "no HT")
|
||||||
|
[ -n "$noht" ] && {
|
||||||
|
logger -t multiap "no HT hit, issue reassoc $bsta"
|
||||||
|
wpa_cli -i $bsta reassoc
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bsta_swap_to_link() {
|
bsta_swap_to_link() {
|
||||||
@@ -774,11 +835,14 @@ set_uplink_backhaul_info() {
|
|||||||
local ul_1905id=$1
|
local ul_1905id=$1
|
||||||
local ul_mac=$2
|
local ul_mac=$2
|
||||||
|
|
||||||
json_load "$(cat $MAPFILE)"
|
(
|
||||||
json_add_string "backhaul_device_id" "$ul_1905id"
|
flock -x 200
|
||||||
json_add_string "backhaul_macddr" "$ul_mac"
|
json_load "$(cat $MAPFILE)"
|
||||||
json_dump > "$MAPFILE"
|
json_add_string "backhaul_device_id" "$ul_1905id"
|
||||||
json_cleanup
|
json_add_string "backhaul_macddr" "$ul_mac"
|
||||||
|
json_dump > "$MAPFILE"
|
||||||
|
json_cleanup
|
||||||
|
) 200>/var/lock/map.backhaul.lock
|
||||||
}
|
}
|
||||||
|
|
||||||
set_uplink() {
|
set_uplink() {
|
||||||
@@ -792,11 +856,16 @@ set_uplink() {
|
|||||||
json_add_string "type" "$type"
|
json_add_string "type" "$type"
|
||||||
json_add_string "ifname" "$ifname"
|
json_add_string "ifname" "$ifname"
|
||||||
json_add_string "macaddr" "$hwaddr"
|
json_add_string "macaddr" "$hwaddr"
|
||||||
json_dump > "$MAPFILE"
|
(
|
||||||
|
flock -x 200
|
||||||
|
json_dump > "$MAPFILE"
|
||||||
|
) 200>/var/lock/map.backhaul.lock
|
||||||
json_cleanup
|
json_cleanup
|
||||||
|
|
||||||
config_load mapagent
|
config_load mapagent
|
||||||
|
|
||||||
|
ubus send map.agent '{"action":"unset", "type":"'$type'", "ifname":"'$ifname'", "macaddr":"'$hwaddr'"}'
|
||||||
|
|
||||||
island_prevention="$(uci -q get mapagent.agent.island_prevention)"
|
island_prevention="$(uci -q get mapagent.agent.island_prevention)"
|
||||||
|
|
||||||
if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then
|
if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then
|
||||||
@@ -816,7 +885,16 @@ unset_uplink() {
|
|||||||
ubus call map.agent toggle_fh '{"enable":false, "prevent_island":true, "ifname":"all"}'
|
ubus call map.agent toggle_fh '{"enable":false, "prevent_island":true, "ifname":"all"}'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f "$MAPFILE" > /dev/null 2>&1
|
|
||||||
|
(
|
||||||
|
flock -x 200
|
||||||
|
json_load "$(cat $MAPFILE)"
|
||||||
|
json_get_var bk_type type
|
||||||
|
json_cleanup
|
||||||
|
ubus send map.agent '{"action":"unset", "type":"'$type'", "bk_type":"'$bk_type'"}'
|
||||||
|
|
||||||
|
[ "$type" = "$bk_type" ] && rm -f "$MAPFILE" > /dev/null 2>&1
|
||||||
|
) 200>/var/lock/map.backhaul.lock
|
||||||
}
|
}
|
||||||
|
|
||||||
func=$1
|
func=$1
|
||||||
@@ -836,6 +914,9 @@ case "$func" in
|
|||||||
sync_mapcontroller_from_wireless) sync_mapcontroller_from_wireless $@;;
|
sync_mapcontroller_from_wireless) sync_mapcontroller_from_wireless $@;;
|
||||||
ts) ts_sub $@;;
|
ts) ts_sub $@;;
|
||||||
bsta_enable_all) bsta_enable_all $@;;
|
bsta_enable_all) bsta_enable_all $@;;
|
||||||
|
bsta_clear_all_bssid) bsta_clear_all_bssid $@;;
|
||||||
|
bsta_blacklist_bssid_set) bsta_blacklist_bssid_set $@;;
|
||||||
|
bsta_blacklist_bssid_clear) bsta_blacklist_bssid_clear $@;;
|
||||||
bsta_disable_lower_priority) bsta_disable_lower_priority $@;;
|
bsta_disable_lower_priority) bsta_disable_lower_priority $@;;
|
||||||
bsta_scan_on_enabled) bsta_scan_on_enabled $@;;
|
bsta_scan_on_enabled) bsta_scan_on_enabled $@;;
|
||||||
bsta_use_link) bsta_use_link $@;;
|
bsta_use_link) bsta_use_link $@;;
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
. /lib/functions.sh
|
. /lib/functions.sh
|
||||||
|
|
||||||
|
AL_BRIDGE=${AL_BRIDGE-"br-lan"}
|
||||||
|
PRIMARY_VID=${PRIMARY_VID-1}
|
||||||
|
|
||||||
### Traffic Separation ###
|
### Traffic Separation ###
|
||||||
|
|
||||||
dbg() {
|
dbg() {
|
||||||
@@ -9,456 +12,157 @@ dbg() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ts_sub() {
|
ts_sub() {
|
||||||
|
|
||||||
ts_usage() {
|
ts_usage() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Usage: $0 [create|delete|populate|primary|reload]
|
Usage: $0 [create|reload]
|
||||||
Traffic Separation related functions.
|
Traffic Separation related functions.
|
||||||
create fh <iface> <vid> - create vlan device and rules for wifi fronthaul
|
create vid - create vlan configuration with vlan_id
|
||||||
create bh <iface> <vid> <profile> - create vlan device and rules for wifi backhaul
|
reload - reload network with new configuration
|
||||||
create eth <iface> <vid> <pbits> - create vlan device and rules for logical ethernet interface
|
|
||||||
delete <iface> - delete vlan device
|
|
||||||
populate eth <iface> <vid> - add secondary network rules for logical ethernet interface
|
|
||||||
primary get <iface> - read primary VID for interface from driver (from Association Response frame IE)
|
|
||||||
reload - reload network with new configuration
|
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
_get_bridge() {
|
ts_create() {
|
||||||
local bridge=$(ip link show $1 | grep -o "master [^\s]*" | cut -d ' ' -f 2)
|
_net_setup() {
|
||||||
echo $bridge
|
local name=$1
|
||||||
}
|
local vid=$2
|
||||||
|
local proto=$3
|
||||||
|
local dev=$4
|
||||||
|
local port_dev=$5
|
||||||
|
|
||||||
set_wireless_bridge() {
|
[ -z "$(uci -q get network.${name})" ] || return
|
||||||
config_load wireless
|
|
||||||
|
|
||||||
_set_network() {
|
local ip_addr="192.168.${vid}.1"
|
||||||
local sec=$1
|
local br_dev="${AL_BRIDGE/-/_}"
|
||||||
local iface=$2
|
local tag=":t"
|
||||||
local bridge=$3
|
|
||||||
|
|
||||||
config_get ifname $sec ifname
|
[ "${vid}" = "${PRIMARY_VID}" ] && {
|
||||||
[ "$iface" != "$ifname" ] && continue
|
tag=""
|
||||||
|
|
||||||
config_get mode $sec mode
|
# Global options
|
||||||
config_get multi_ap $sec multi_ap "0"
|
[ -z "$(uci -q get network.${br_dev}.vlan_filtering)" ] && {
|
||||||
[ "$mode" = "sta" -a "$multi_ap" = "1" ] && continue
|
uci -q set network.${br_dev}.vlan_filtering=1;
|
||||||
|
}
|
||||||
|
|
||||||
config_get network $sec network
|
uci -q delete network.lan.proto
|
||||||
local new_network=${bridge##br-}
|
uci -q delete network.lan.ipaddr
|
||||||
if [ "$new_network" != "$network" ] ; then
|
uci -q delete network.lan.netmask
|
||||||
uci -q set wireless.${sec}.network=${new_network}
|
uci -q delete network.lan.ip6assign
|
||||||
uci commit wireless
|
}
|
||||||
|
|
||||||
|
uci -q set network.${name}="interface"
|
||||||
|
uci -q set network.${name}.device="$dev"
|
||||||
|
uci -q set network.${name}.is_lan="1"
|
||||||
|
|
||||||
|
if [ "$proto" = "static" ] ; then
|
||||||
|
uci -q set network.${name}.proto="static"
|
||||||
|
# TODO vid > 255
|
||||||
|
uci -q set network.${name}.ipaddr="${ip_addr}"
|
||||||
|
uci -q set network.${name}.netmask="255.255.255.0"
|
||||||
|
uci -q set network.${name}.ip6assign '60'
|
||||||
|
else
|
||||||
|
uci -q set network.${name}.proto="dhcp"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
brctl addif $bridge $iface &> /dev/null
|
uci -q add network bridge-vlan
|
||||||
}
|
uci -q set network.@bridge-vlan[-1].device="$AL_BRIDGE"
|
||||||
|
uci -q set network.@bridge-vlan[-1].vlan="$vid"
|
||||||
|
|
||||||
config_foreach _set_network wifi-iface ${1} ${2}
|
for port in $(uci -q get network.${br_dev}.ports) ; do
|
||||||
}
|
echo $port | grep -q eth || continue
|
||||||
|
uci -q add_list network.@bridge-vlan[-1].ports="${port}${tag}"
|
||||||
ts_create() {
|
|
||||||
|
|
||||||
_create_vlan_dev() {
|
|
||||||
iface=$1 # real iface
|
|
||||||
vid=$2 # Vlan ID
|
|
||||||
bridge=$3 # bridge iface should be connected
|
|
||||||
vlan_dev=$4
|
|
||||||
|
|
||||||
old_bridge="$(_get_bridge $iface)" # bridge iface is connected to
|
|
||||||
|
|
||||||
# remove interface from bridge if it is in one
|
|
||||||
[ -n "$old_bridge" ] && brctl delif $old_bridge $iface &> /dev/null
|
|
||||||
|
|
||||||
# (re)create vlan device
|
|
||||||
ip link show $vlan_dev && vlanctl --if-delete $vlan_dev
|
|
||||||
vlanctl --mcast --if-create-name $iface $vlan_dev --if $iface --set-if-mode-rg
|
|
||||||
|
|
||||||
vlanctl --if $iface --tx --tags 0 --default-miss-drop
|
|
||||||
vlanctl --if $iface --tx --tags 1 --default-miss-drop
|
|
||||||
vlanctl --if $iface --tx --tags 2 --default-miss-drop
|
|
||||||
vlanctl --if $iface --rx --tags 0 --default-miss-drop
|
|
||||||
vlanctl --if $iface --rx --tags 1 --default-miss-drop
|
|
||||||
vlanctl --if $iface --rx --tags 2 --default-miss-drop
|
|
||||||
|
|
||||||
# bring the vlan device up and add back to bridge if it was in one
|
|
||||||
brctl addif $bridge $vlan_dev &> /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_create_fh() {
|
|
||||||
iface=$1 # fh iface
|
|
||||||
vid=$2 # SSID specific (secondary) or primary vid
|
|
||||||
bridge=$3
|
|
||||||
|
|
||||||
[ -n "$iface" ] && [ -n "$vid" ] && [ -n "$bridge" ] || {
|
|
||||||
cat <<EOF
|
|
||||||
Adding FH device requires IFACE, VID and bridge
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# create vlan device
|
|
||||||
#set_wireless_bridge $iface $bridge
|
|
||||||
|
|
||||||
vlan_dev=${iface}_vlan${vid}
|
|
||||||
ip link set $vlan_dev down
|
|
||||||
_create_vlan_dev $iface $vid $bridge $vlan_dev
|
|
||||||
|
|
||||||
# add rules
|
|
||||||
# vlanctl --if $iface --rx --tags 0 --filter-ethertype 0x886c --set-rxif $vlan_dev --rule-append # incoming brcm
|
|
||||||
|
|
||||||
# EAPOL frames
|
|
||||||
vlanctl --if $iface --rx --tags 0 --filter-ethertype 34958 --set-rxif $vlan_dev --rule-append
|
|
||||||
vlanctl --if $iface --rx --tags 1 --filter-ethertype 34958 --pop-tag --set-rxif $vlan_dev --rule-append
|
|
||||||
vlanctl --if $iface --tx --tags 0 --filter-txif $vlan_dev --filter-ethertype 34958 --rule-append
|
|
||||||
|
|
||||||
# 8021q vlan id TAG/UNTAG
|
|
||||||
vlanctl --if $iface --rx --tags 0 --set-rxif $vlan_dev --push-tag --set-vid $vid 0 --rule-append
|
|
||||||
vlanctl --if $iface --tx --tags 1 --filter-txif $vlan_dev --filter-vid $vid 0 --pop-tag --dscp2pbits 0 --rule-append
|
|
||||||
|
|
||||||
ip link set $iface up
|
|
||||||
ip link set $vlan_dev up
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_create_bh() {
|
|
||||||
iface=$1 # bh iface
|
|
||||||
vid=$2 # primary vid
|
|
||||||
profile=$3 # agent profile (1 or 2)
|
|
||||||
bridge=$4 # bridge interface should be connected to
|
|
||||||
|
|
||||||
[ -n "$iface" ] && [ -n "$vid" ] && [ -n "$profile" ] || {
|
|
||||||
cat <<EOF
|
|
||||||
Adding BH device requires IFACE, VID and PROFILE (1 or 2).
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
#[ -n "$bridge" ] && set_wireless_bridge $iface $bridge
|
|
||||||
|
|
||||||
old_vid=$(wl -i $1 map_8021q_settings)
|
|
||||||
old_vid=${old_vid##* }
|
|
||||||
old_profile=$(wl -i $1 map_profile | cut -d ' ' -f 3)
|
|
||||||
|
|
||||||
[ "$old_vid" = "$vid" -a "$old_profile" = "$profile" ] && return
|
|
||||||
|
|
||||||
wl vlan_mode 0 &> /dev/null # make sure this is OFF, else driver won't handle vlan
|
|
||||||
wl -i $iface down &> /dev/null
|
|
||||||
wl -i $iface map_profile $profile &> /dev/null # only has effect on profile 2
|
|
||||||
wl -i $iface map_8021q_settings $vid &> /dev/null # can only be set on bBSS (read-only on bSTA)
|
|
||||||
wl -i $iface up &> /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_create_lei() {
|
|
||||||
vid=$1 # primary vid
|
|
||||||
pbits=$2 # default pbits to apply
|
|
||||||
vlan_bridge=$3 # name of ts subsystem bridge
|
|
||||||
lan_bridge=$4 # name of node local bridge
|
|
||||||
|
|
||||||
[ -n "$vid" ] && [ -n "$pbits" ] && [ -n "$vlan_bridge" ] && [ -n "$lan_bridge" ] || {
|
|
||||||
cat <<EOF
|
|
||||||
Adding ETH device requires IFACE, VID, PBITS and name of vlan and lan bridges.
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
ip link show lei &> /dev/null || {
|
|
||||||
ip link add link lei name lei_lan type vlan id 1 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
old_vid=$(ip -d link show lei_lan | sed -n 's/vlan.*id \([0-9][0-9]*\) .*/\1/p')
|
|
||||||
|
|
||||||
[ "$old_vid" != "$vid" ] && {
|
|
||||||
ip link del lei_lan
|
|
||||||
ip link add link lei name lei_lan type vlan id ${vid}
|
|
||||||
}
|
|
||||||
|
|
||||||
brctl addif ${lan_bridge} lei_lan &>/dev/null
|
|
||||||
brctl addif ${vlan_bridge} lei_map &>/dev/null
|
|
||||||
|
|
||||||
ip link set lei up
|
|
||||||
ip link set lei_map up
|
|
||||||
ip link set lei_lan up
|
|
||||||
}
|
|
||||||
|
|
||||||
_create_eth() {
|
|
||||||
iface=$1 # Multi-AP Logical Ethernet Interface
|
|
||||||
vid=$2 # primary vid
|
|
||||||
bridge=$3 # name of ts subsystem bridge
|
|
||||||
pbits=0
|
|
||||||
|
|
||||||
[ -n "$iface" ] && [ -n "$vid" ] && [ -n "$bridge" ] || {
|
|
||||||
cat <<EOF
|
|
||||||
Adding ETH device requires IFACE, VID, PBITS and name of vlan and lan bridges.
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
dbg create $@
|
|
||||||
|
|
||||||
ip link set $iface down
|
|
||||||
|
|
||||||
vlan_dev=${iface}_vlan${vid}
|
|
||||||
ip link set $vlan_dev down
|
|
||||||
_create_vlan_dev $iface $vid $bridge $vlan_dev
|
|
||||||
|
|
||||||
vlanctl --if $iface --rx --tags 0 --set-rxif $vlan_dev --push-tag --set-vid $vid 0 --set-pbits $pbits 0 --rule-append
|
|
||||||
vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --pop-tag --rule-append
|
|
||||||
|
|
||||||
[ $# -le 3 ] && exit 0
|
|
||||||
shift 3
|
|
||||||
|
|
||||||
while [ -n "$1" ] ; do
|
|
||||||
vid=$1
|
|
||||||
vlanctl --if $iface --rx --tags 1 --filter-vid $vid 0 --set-rxif $vlan_dev --rule-append
|
|
||||||
vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --rule-append
|
|
||||||
shift
|
|
||||||
done
|
done
|
||||||
|
|
||||||
ip link set $iface up
|
uci -q add_list network.${br_dev}.ports="$port_dev"
|
||||||
ip link set $vlan_dev up
|
uci -q add_list network.@bridge-vlan[-1].ports="$port_dev"
|
||||||
|
|
||||||
|
uci -q commit network
|
||||||
}
|
}
|
||||||
|
|
||||||
ts_create_eths() {
|
_dhcp_setup() {
|
||||||
pvid=$1 # primary vid
|
local name=$1
|
||||||
bridge=$2 # name of ts subsystem bridge
|
|
||||||
|
|
||||||
shift 2
|
[ -n "$(uci -q get dhcp.${name})" ] && return
|
||||||
# TODO use ieee1905 bridge
|
|
||||||
for iface in $(uci get network.br_lan.ports) ; do
|
uci -q set dhcp.${name}=dhcp
|
||||||
[ "$iface" = "lei_lan" ] && continue
|
uci -q set dhcp.${name}.interface="${name}"
|
||||||
_create_eth $iface $pvid $bridge $@
|
uci -q set dhcp.${name}.start="100"
|
||||||
ubus call ieee1905 del_interface "{\"ifname\":\"$iface\"}"
|
uci -q set dhcp.${name}.limit="150"
|
||||||
done
|
uci -q set dhcp.${name}.leasetime="1h"
|
||||||
|
uci -q set dhcp.${name}.dhcpv4="server"
|
||||||
|
uci -q set dhcp.${name}.dhcpv6="server"
|
||||||
|
uci -q set dhcp.${name}.ra="server"
|
||||||
|
uci -q set dhcp.${name}.ra_slaac="1"
|
||||||
|
uci -q add_list dhcp.${name}.ra_flags="managed-config"
|
||||||
|
uci -q add_list dhcp.${name}.ra_flags="other-config"
|
||||||
|
|
||||||
|
uci -q commit dhcp
|
||||||
}
|
}
|
||||||
|
|
||||||
ts_create_dhcp() {
|
_firewall_setup() {
|
||||||
local diff=""
|
local name=$1
|
||||||
|
local network=$1
|
||||||
|
local vid=$2
|
||||||
|
local zone_exist=0
|
||||||
|
|
||||||
_net_setup() {
|
config_load firewall
|
||||||
local name=$1
|
|
||||||
local devname=$2
|
|
||||||
local vid=$3
|
|
||||||
|
|
||||||
[ -z "$(uci -q get network.${name})" ] && {
|
_process_zone() {
|
||||||
uci -q set network.${name}="interface"
|
local section=$1
|
||||||
uci -q set network.${name}.device="$devname"
|
local new_name=$2
|
||||||
uci -q set network.${name}.is_lan="1"
|
local name
|
||||||
uci -q set network.${name}.proto="static"
|
|
||||||
# TODO vid > 255
|
|
||||||
local ip_addr="192.168.${vid}.1"
|
|
||||||
[ "${vid}" = "1" ] && ip_addr="192.168.${vid}.2"
|
|
||||||
uci -q set network.${name}.ipaddr="${ip_addr}"
|
|
||||||
uci -q set network.${name}.netmask="255.255.255.0"
|
|
||||||
|
|
||||||
diff="1"
|
config_get name $section name
|
||||||
}
|
|
||||||
|
|
||||||
[ "$diff" = "1" ] && uci -q commit network
|
[ "$name" == "$new_name" ] && zone_exist=1
|
||||||
}
|
}
|
||||||
|
|
||||||
_br_setup() {
|
config_foreach _process_zone zone $name
|
||||||
local name=$1
|
|
||||||
local sinkname=$2
|
|
||||||
local vid=$3
|
|
||||||
|
|
||||||
[ -z "$(uci -q get network.${name}_dev)" ] && {
|
[ "$zone_exist" != "0" ] && return
|
||||||
uci -q set network.${name}_dev="device"
|
|
||||||
uci -q set network.${name}_dev.name="br-${name}"
|
|
||||||
uci -q set network.${name}_dev.type="bridge"
|
|
||||||
uci -q set network.${name}_dev.bridge_empty="1"
|
|
||||||
uci -q add_list network.${name}_dev.ports="${sinkname}"
|
|
||||||
|
|
||||||
diff="1"
|
[ "${vid}" = "${PRIMARY_VID}" ] && {
|
||||||
}
|
uci -q delete firewall.lan
|
||||||
|
|
||||||
[ -z "$(uci -q get network.${name})" ] && {
|
|
||||||
uci -q set network.${name}="interface"
|
|
||||||
uci -q set network.${name}.device="br-${name}"
|
|
||||||
uci -q set network.${name}.is_lan="1"
|
|
||||||
uci -q set network.${name}.proto="static"
|
|
||||||
uci -q set network.${name}.ipaddr="192.168.${vid}.1"
|
|
||||||
uci -q set network.${name}.netmask="255.255.255.0"
|
|
||||||
|
|
||||||
diff="1"
|
|
||||||
}
|
|
||||||
|
|
||||||
[ "$diff" = "1" ] && uci -q commit network
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_dhcp_setup() {
|
uci -q add firewall zone
|
||||||
local name=$1
|
uci -q set firewall.@zone[-1].name="$name"
|
||||||
|
uci -q add_list firewall.@zone[-1].network="$network"
|
||||||
|
uci -q set firewall.@zone[-1].input='ACCEPT'
|
||||||
|
uci -q set firewall.@zone[-1].output='ACCEPT'
|
||||||
|
uci -q set firewall.@zone[-1].forward='ACCEPT'
|
||||||
|
|
||||||
[ -n "$(uci -q get dhcp.${name})" ] && return
|
uci -q add firewall forwarding
|
||||||
|
uci -q set firewall.@forwarding[-1].src="$name"
|
||||||
|
uci -q set firewall.@forwarding[-1].dest="wan"
|
||||||
|
|
||||||
uci -q set dhcp.${name}=dhcp
|
uci -q commit firewall
|
||||||
uci -q set dhcp.${name}.interface="${name}"
|
|
||||||
uci -q set dhcp.${name}.start="100"
|
|
||||||
uci -q set dhcp.${name}.limit="150"
|
|
||||||
uci -q set dhcp.${name}.leasetime="1h"
|
|
||||||
uci -q set dhcp.${name}.dhcpv4="server"
|
|
||||||
uci -q set dhcp.${name}.dhcpv6="server"
|
|
||||||
uci -q set dhcp.${name}.ra="server"
|
|
||||||
uci -q set dhcp.${name}.ra_slaac="1"
|
|
||||||
uci -q add_list dhcp.${name}.ra_flags="managed-config"
|
|
||||||
uci -q add_list dhcp.${name}.ra_flags="other-config"
|
|
||||||
|
|
||||||
diff="1"
|
|
||||||
uci -q commit dhcp
|
|
||||||
}
|
|
||||||
|
|
||||||
_firewall_setup() {
|
|
||||||
local name=$1
|
|
||||||
local network=$2
|
|
||||||
local zone_exist=0
|
|
||||||
|
|
||||||
config_load firewall
|
|
||||||
|
|
||||||
_process_zone() {
|
|
||||||
local section=$1
|
|
||||||
local new_name=$2
|
|
||||||
local name
|
|
||||||
|
|
||||||
config_get name $section name
|
|
||||||
|
|
||||||
[ "$name" == "$new_name" ] && zone_exist=1
|
|
||||||
}
|
|
||||||
|
|
||||||
config_foreach _process_zone zone $name
|
|
||||||
|
|
||||||
[ "$zone_exist" != "0" ] && return
|
|
||||||
|
|
||||||
uci -q add firewall zone
|
|
||||||
uci -q set firewall.@zone[-1].name="$name"
|
|
||||||
uci -q add_list firewall.@zone[-1].network="$network"
|
|
||||||
uci -q set firewall.@zone[-1].input='ACCEPT'
|
|
||||||
uci -q set firewall.@zone[-1].output='ACCEPT'
|
|
||||||
uci -q set firewall.@zone[-1].forward='ACCEPT'
|
|
||||||
|
|
||||||
uci -q add firewall forwarding
|
|
||||||
uci -q set firewall.@forwarding[-1].src="$name"
|
|
||||||
uci -q set firewall.@forwarding[-1].dest="wan"
|
|
||||||
|
|
||||||
diff="1"
|
|
||||||
uci -q commit firewall
|
|
||||||
}
|
|
||||||
|
|
||||||
vid=$1 # primary vid
|
|
||||||
|
|
||||||
[ -n "$vid" ] || {
|
|
||||||
cat <<EOF
|
|
||||||
VID required to configure DHCP.
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
ip link show sink${vid} || {
|
|
||||||
ip link add sink${vid} type veth peer name sink${vid}_vlan
|
|
||||||
ip link add link sink${vid} name sink${vid}_peer type vlan id ${vid}
|
|
||||||
}
|
|
||||||
|
|
||||||
ip link set sink${vid} up
|
|
||||||
ip link set sink${vid}_peer up
|
|
||||||
ip link set sink${vid}_vlan up
|
|
||||||
|
|
||||||
diff=""
|
|
||||||
_net_setup sink${vid} sink${vid}_peer ${vid}
|
|
||||||
_dhcp_setup sink${vid}
|
|
||||||
_firewall_setup lan${vid} sink${vid}
|
|
||||||
|
|
||||||
[ "$diff" = "1" ] && {
|
|
||||||
ubus call network reload
|
|
||||||
ubus -t 5 wait_for network.interface.sink${vid}
|
|
||||||
}
|
|
||||||
|
|
||||||
brctl addif br-map sink${vid}_vlan &> /dev/null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local type=$1
|
vid=$1
|
||||||
shift
|
|
||||||
|
|
||||||
case "$type" in
|
[ -n "$vid" ] || {
|
||||||
fh) ts_create_fh $@;;
|
|
||||||
bh) ts_create_bh $@;;
|
|
||||||
lei) ts_create_lei $@;;
|
|
||||||
eths) ts_create_eths $@;;
|
|
||||||
dhcp) ts_create_dhcp $@;;
|
|
||||||
--help|help) ts_usage;;
|
|
||||||
*) ts_usage; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_delete() {
|
|
||||||
iface=$1
|
|
||||||
|
|
||||||
path=$(ls -d /sys/class/net/${iface}/upper_*)
|
|
||||||
[ -z "$path" ] && exit 0
|
|
||||||
|
|
||||||
vlan_dev=${path##*upper_}
|
|
||||||
bridge="$(_get_bridge $vlan_dev)"
|
|
||||||
|
|
||||||
[ -n "$bridge" ] && {
|
|
||||||
vlanctl --if-delete $vlan_dev # note: also removes rules and removes from bridge
|
|
||||||
brctl addif $bridge $iface &> /dev/null # needed to add again
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_populate() {
|
|
||||||
local type=$1
|
|
||||||
shift
|
|
||||||
|
|
||||||
[ "$type" == "eth" ] || {
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Populating ETH rules requires IFACE and VID.
|
VID required to configure.
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
iface=$1 # Multi-AP Logical Ethernet Interface
|
ip link show sink${vid} 2> /dev/null || {
|
||||||
vid=$2 # secondary vid
|
ip link add sink${vid} type veth peer name sink_peer${vid}
|
||||||
|
}
|
||||||
|
|
||||||
path=$(ls -d /sys/class/net/${iface}/upper_*)
|
ip link set sink${vid} up
|
||||||
[ -z "$path" ] && exit 1
|
ip link set sink_peer${vid} up
|
||||||
vlan_dev=${path##*upper_}
|
|
||||||
|
|
||||||
# add rules
|
proto="dhcp"
|
||||||
#vlanctl --if $iface --rx --tags 1 --filter-vid $vid 0 --set-rxif $vlan_dev --rule-append # note: retain secondary vids
|
[ -x "/usr/sbin/mapcontroller" ] && proto="static" ;
|
||||||
#vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --rule-append # note: already default
|
_net_setup "vlan${vid}" ${vid} ${proto} "sink${vid}" "sink_peer${vid}"
|
||||||
}
|
|
||||||
|
|
||||||
ts_primary() {
|
[ -x "/usr/sbin/mapcontroller" ] && {
|
||||||
local func=$1
|
_dhcp_setup vlan${vid}
|
||||||
shift
|
_firewall_setup vlan${vid} ${vid}
|
||||||
|
}
|
||||||
case "$func" in
|
|
||||||
get) vid=$(wl -i $1 map_8021q_settings); echo ${vid##* };;
|
|
||||||
*) ts_usage; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_unicast() {
|
|
||||||
local mac=$1
|
|
||||||
local iface=$2
|
|
||||||
|
|
||||||
# TODO: improve?
|
|
||||||
res=$(ebtables -t broute -L | grep -i "$mac" | grep "$iface")
|
|
||||||
[ -n "$res" ] && return
|
|
||||||
|
|
||||||
ebtables -t broute -D BROUTING -d "$mac" -p 0x893a -j DROP
|
|
||||||
ebtables -t broute -I BROUTING -i "$iface" -d "$mac" -p 0x893a -j DROP
|
|
||||||
}
|
|
||||||
|
|
||||||
ts_multicast() {
|
|
||||||
local iface=$1
|
|
||||||
|
|
||||||
# TODO: improve?
|
|
||||||
res=$(ebtables -t broute -L | grep -i "1:80:C2:00:00:13" | grep "$iface")
|
|
||||||
[ -n "$res" ] && return
|
|
||||||
|
|
||||||
ebtables -t broute -D BROUTING -d 01:80:C2:00:00:13 -p 0x893a -j DROP
|
|
||||||
ebtables -t broute -D BROUTING -i "$iface" -d 01:80:C2:00:00:13 -p 0x893a -j DROP
|
|
||||||
ebtables -t broute -I BROUTING -i "$iface" -d 01:80:C2:00:00:13 -p 0x893a -j DROP
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ts_reload() {
|
ts_reload() {
|
||||||
@@ -466,32 +170,32 @@ EOF
|
|||||||
|
|
||||||
# workaround for missing backhaul wifi.ap.* ubus obj's:
|
# workaround for missing backhaul wifi.ap.* ubus obj's:
|
||||||
# iterate in config and setup bh
|
# iterate in config and setup bh
|
||||||
config_load wireless
|
# config_load wireless
|
||||||
|
|
||||||
_setup_bh_iface() {
|
# _setup_bh_iface() {
|
||||||
local sec=$1
|
# local sec=$1
|
||||||
local iface=$2
|
# local iface=$2
|
||||||
local bridge=$3
|
# local bridge=$3
|
||||||
|
|
||||||
config_get ifname $sec ifname
|
# config_get ifname $sec ifname
|
||||||
|
|
||||||
config_get mode $sec mode
|
# config_get mode $sec mode
|
||||||
config_get multi_ap $sec multi_ap "0"
|
# config_get multi_ap $sec multi_ap "0"
|
||||||
[ "$mode" = "ap" -a "$multi_ap" = "1" ] && {
|
# [ "$mode" = "ap" -a "$multi_ap" = "1" ] && {
|
||||||
ts_create bh $ifname 1 2 br-map
|
# ts_create bh $ifname 1 2 br-map
|
||||||
}
|
# }
|
||||||
}
|
#}
|
||||||
|
|
||||||
config_foreach _setup_bh_iface wifi-iface
|
# config_foreach _setup_bh_iface wifi-iface
|
||||||
|
|
||||||
[ -n "dhcp_reload" ] && /etc/init.d/dnsmasq reload
|
[ -n "dhcp_reload" ] && /etc/init.d/dnsmasq reload
|
||||||
|
ubus call uci commit '{"config":"network"}'
|
||||||
|
/etc/init.d/firewall reload
|
||||||
|
|
||||||
# another workaround for netif? removed
|
|
||||||
# sink devices for br-map bridge
|
#for sink in $(ubus list network.interface.sink*) ; do
|
||||||
for sink in $(ubus list network.interface.sink*) ; do
|
# local sink_vlan=${sink/network.interface./}_vlan
|
||||||
local sink_vlan=${sink/network.interface./}_vlan
|
#done
|
||||||
brctl addif br-map $sink_vlan &> /dev/null
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local func=$1
|
local func=$1
|
||||||
@@ -499,11 +203,6 @@ EOF
|
|||||||
|
|
||||||
case "$func" in
|
case "$func" in
|
||||||
create) dbg "create $@"; ts_create $@;;
|
create) dbg "create $@"; ts_create $@;;
|
||||||
delete) dbg "delete $@"; ts_delete $@;;
|
|
||||||
populate) dbg "populate $@"; ts_populate $@;;
|
|
||||||
primary) dbg "primary $@"; ts_primary $@;;
|
|
||||||
unicast) dbg "unicast $@"; ts_unicast $@;;
|
|
||||||
multicast) dbg "multicast $@"; ts_multicast $@;;
|
|
||||||
reload) dbg "reload $@"; ts_reload $@;;
|
reload) dbg "reload $@"; ts_reload $@;;
|
||||||
--help|help) ts_usage;;
|
--help|help) ts_usage;;
|
||||||
*) ts_usage; exit 1;;
|
*) ts_usage; exit 1;;
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2020 IOPSYS Software Solutions AB
|
# Copyright (C) 2020-22 IOPSYS Software Solutions AB
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=map-controller
|
PKG_NAME:=map-controller
|
||||||
PKG_VERSION:=6.0.18
|
PKG_VERSION:=2.8.0.5
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_SOURCE_VERSION:=4029fa48a18e3a6c8af3a2478558e74184fd1786
|
PKG_SOURCE_VERSION:=da283946e96e2d8b982b0b0518fa84102f0ef4df
|
||||||
|
|
||||||
PKG_LICENSE:=PROPRIETARY IOPSYS
|
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
@@ -20,6 +17,9 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
|||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/map-controller
|
define Package/map-controller
|
||||||
|
|||||||
@@ -1,67 +1,143 @@
|
|||||||
config controller 'controller'
|
config controller 'controller'
|
||||||
option enabled '1'
|
option enabled '1'
|
||||||
option registrar '5 2' #bands on which wps registrar supported
|
option registrar '2 5'
|
||||||
option debug '6'
|
option debug '0'
|
||||||
option enable_sta_steer '0'
|
option enable_sta_steer '0'
|
||||||
option enable_bsta_steer '0'
|
option enable_bsta_steer '0'
|
||||||
option primary_vid '1'
|
option use_bcn_metrics '0'
|
||||||
|
option use_usta_metrics '0'
|
||||||
|
option primary_vid '0'
|
||||||
option primary_pcp '0'
|
option primary_pcp '0'
|
||||||
|
option allow_bgdfs '0'
|
||||||
config interface 'lan'
|
option channel_plan '0'
|
||||||
option 'dhcp'
|
|
||||||
|
|
||||||
config ap
|
|
||||||
option band '5'
|
|
||||||
option encryption 'sae-mixed'
|
|
||||||
option key '1234567890'
|
|
||||||
option ssid 'map-net5'
|
|
||||||
option vid '1'
|
|
||||||
option type 'fronthaul'
|
|
||||||
option network 'lan'
|
|
||||||
|
|
||||||
config ap
|
config ap
|
||||||
option band '2'
|
option band '2'
|
||||||
option encryption 'sae-mixed'
|
option encryption 'sae-mixed'
|
||||||
option key '1234567890'
|
|
||||||
option ssid 'map-net2'
|
|
||||||
option vid '1'
|
option vid '1'
|
||||||
option type 'fronthaul'
|
option ssid 'IOWRT-2.4GHz'
|
||||||
option network 'lan'
|
option encryption 'sae-mixed'
|
||||||
|
option key '1234567890'
|
||||||
|
|
||||||
config ap
|
config ap
|
||||||
option band '5'
|
option band '5'
|
||||||
option encryption 'sae'
|
option type 'fronthaul'
|
||||||
option key '5555555555'
|
|
||||||
option ssid 'map-bkhaul-5'
|
|
||||||
option type 'backhaul'
|
|
||||||
option disallow_bsta '1' # bitmap, 1 for disallow p1, 2 to disallow p2, 3 to disallow both (probably never applicable)
|
|
||||||
option vid '1'
|
option vid '1'
|
||||||
option network 'lan'
|
option ssid 'IOWRT-5GHz'
|
||||||
|
option encryption 'sae-mixed'
|
||||||
|
option key '1234567890'
|
||||||
|
|
||||||
config ap
|
config ap
|
||||||
option band '2'
|
option band '2'
|
||||||
option encryption 'sae'
|
|
||||||
option key '2222222222'
|
|
||||||
option ssid 'map-bkhaul-2'
|
|
||||||
list disallow_bsta '0' # 0 or 1 profile-1 bSTA
|
|
||||||
option vid '1'
|
|
||||||
option type 'backhaul'
|
option type 'backhaul'
|
||||||
option network 'lan'
|
option vid '1'
|
||||||
|
list disallow_bsta '0'
|
||||||
|
option ssid 'MAP-BH-2.4GHz'
|
||||||
|
option encryption 'sae'
|
||||||
|
option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
|
||||||
|
|
||||||
config policy 'policy'
|
config ap
|
||||||
list steer_exclude '00:11:22:33:44:55'
|
option band '5'
|
||||||
list steer_exclude_btm '00:aa:bb:cc:dd:ee'
|
option type 'backhaul'
|
||||||
option steer_policy '2' # 0, 1, 2 - see MultiAP spec
|
option vid '1'
|
||||||
option util_threshold '200' # channel-util as in BSS load
|
list disallow_bsta '0'
|
||||||
option rcpi_threshold '30' # 0 - 220 valid range
|
option ssid 'MAP-BH-5GHz'
|
||||||
option report_scan '0' # 0 or 1 for independent scans
|
option encryption 'sae'
|
||||||
option report_sta_assocfails '1' # 0 or 1 - stas assoc failure
|
option key '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWZYZ0'
|
||||||
option report_sta_assocfails_rate '2' # reporting rate for STA assoc fails (attempts per minute)
|
|
||||||
option report_metric_periodic '0' # 0, or 1 - 255 in secs
|
# node and radio sections (per node) are auto
|
||||||
option report_rcpi_threshold '0' # 0, or 1 - 220
|
# generated per Multi-AP Agent in the network
|
||||||
option report_util_threshold '0' # 0, or channel-util value
|
#
|
||||||
option rcpi_hysteresis_margin '0' # 0, or > 0 - hysteresis margin
|
#config node 'node_0a1b2c3d4e50'
|
||||||
option include_sta_stats '0' # sta stats in AP metric resp
|
# option agent_id '0a:1b:2c:3d:4e:50'
|
||||||
option include_sta_metric '0' # sta metric in AP metric resp
|
# following values use default values after onboarding if not explicitly set
|
||||||
option disallow_bsta_p1 '0' # 0 or 1 profile-1 bSTA
|
# option backhaul_ul_macaddr '00:00:00:00:00:00'
|
||||||
option disallow_bsta_p2 '0' # 0 or 1 profile-2 bSTA
|
# option backhaul_dl_macaddr '00:00:00:00:00:00'
|
||||||
|
# option backhaul_type 'none'
|
||||||
|
# option primary_vid '1'
|
||||||
|
# option primary_pcp '0'
|
||||||
|
# option report_sta_assocfails '0'
|
||||||
|
# option report_sta_assocfails_rate '0'
|
||||||
|
# option report_metric_periodic '0'
|
||||||
|
# option report_scan '0'
|
||||||
|
# option steer_exclude '0'
|
||||||
|
# option steer_exclude_btm '0'
|
||||||
|
# option steer_disallow '0'
|
||||||
|
# option coordinated_cac '0'
|
||||||
|
# option traffic_separation '0'
|
||||||
|
# option sta_steer '0'
|
||||||
|
|
||||||
|
#config radio 'radio_0a1b2c3d4e53'
|
||||||
|
# option agent_id '0a:1b:2c:3d:4e:50'
|
||||||
|
# option macaddr '0a:1b:2c:3d:4e:53'
|
||||||
|
# option band '2'
|
||||||
|
# following values use default values after onboarding if not explicitly set
|
||||||
|
# option steer_policy '0'
|
||||||
|
# option util_threshold '0'
|
||||||
|
# option rcpi_threshold '70'
|
||||||
|
# option report_rcpi_threshold '80'
|
||||||
|
# option report_util_threshold '0'
|
||||||
|
# option report_rcpi_hysteresis_margin '0'
|
||||||
|
# option include_sta_stats '1'
|
||||||
|
# option include_sta_metric '1'
|
||||||
|
|
||||||
|
#config radio 'radio_0a1b2c3d4e54'
|
||||||
|
# option agent_id '0a:1b:2c:3d:4e:50'
|
||||||
|
# option macaddr '0a:1b:2c:3d:4e:54'
|
||||||
|
# option band '5'
|
||||||
|
# following values use default values after onboarding if not explicitly set
|
||||||
|
# option steer_policy '0'
|
||||||
|
# option util_threshold '0'
|
||||||
|
# option rcpi_threshold '86'
|
||||||
|
# option report_rcpi_threshold '96'
|
||||||
|
# option report_util_threshold '0'
|
||||||
|
# option report_rcpi_hysteresis_margin '0'
|
||||||
|
# option include_sta_stats '1'
|
||||||
|
# option include_sta_metric '1'
|
||||||
|
|
||||||
|
#config node 'node_3fb1c2d3e460'
|
||||||
|
# option agent_id '3f:b1:c2:d3:e4:60'
|
||||||
|
# following values use default values after onboarding if not explicitly set
|
||||||
|
# option backhaul_ul_macaddr '00:00:00:00:00:00'
|
||||||
|
# option backhaul_dl_macaddr '00:00:00:00:00:00'
|
||||||
|
# option backhaul_type 'none'
|
||||||
|
# option primary_vid '1'
|
||||||
|
# option primary_pcp '0'
|
||||||
|
# option report_sta_assocfails '0'
|
||||||
|
# option report_sta_assocfails_rate '0'
|
||||||
|
# option report_metric_periodic '0'
|
||||||
|
# option report_scan '0'
|
||||||
|
# option steer_exclude '0'
|
||||||
|
# option steer_exclude_btm '0'
|
||||||
|
# option steer_disallow '0'
|
||||||
|
# option coordinated_cac '0'
|
||||||
|
# option traffic_separation '0'
|
||||||
|
# option sta_steer '0'
|
||||||
|
|
||||||
|
#config radio 'radio_3fb1c2d3e463'
|
||||||
|
# option agent_id '3f:b1:c2:d3:e4:60'
|
||||||
|
# option macaddr '3f:b1:c2:d3:e4:63'
|
||||||
|
# option band '2'
|
||||||
|
# following values use default values after onboarding if not explicitly set
|
||||||
|
# option steer_policy '0'
|
||||||
|
# option util_threshold '0'
|
||||||
|
# option rcpi_threshold '70'
|
||||||
|
# option report_rcpi_threshold '80'
|
||||||
|
# option report_util_threshold '0'
|
||||||
|
# option report_rcpi_hysteresis_margin '0'
|
||||||
|
# option include_sta_stats '1'
|
||||||
|
# option include_sta_metric '1'
|
||||||
|
|
||||||
|
#config radio 'radio_3fb1c2d3e464'
|
||||||
|
# option agent_id '3f:b1:c2:d3:e4:60'
|
||||||
|
# option macaddr '3f:b1:c2:d3:e4:64'
|
||||||
|
# option band '5'
|
||||||
|
# following values use default values after onboarding if not explicitly set
|
||||||
|
# option steer_policy '0'
|
||||||
|
# option util_threshold '0'
|
||||||
|
# option rcpi_threshold '86'
|
||||||
|
# option report_rcpi_threshold '96'
|
||||||
|
# option report_util_threshold '0'
|
||||||
|
# option report_rcpi_hysteresis_margin '0'
|
||||||
|
# option include_sta_stats '1'
|
||||||
|
# option include_sta_metric '1'
|
||||||
|
|||||||
@@ -23,7 +23,9 @@ validate_controller_section() {
|
|||||||
'enable_sta_steer:bool:false' \
|
'enable_sta_steer:bool:false' \
|
||||||
'enable_bsta_steer:bool:false' \
|
'enable_bsta_steer:bool:false' \
|
||||||
'use_bcn_metrics:bool:false' \
|
'use_bcn_metrics:bool:false' \
|
||||||
'use_usta_metrics:bool:false'
|
'use_usta_metrics:bool:false' \
|
||||||
|
'allow_bgdfs:range(0,2629744)' \
|
||||||
|
'channel_plan:range(0,2629744)'
|
||||||
|
|
||||||
[ "$?" -ne 0 ] && {
|
[ "$?" -ne 0 ] && {
|
||||||
logger -s -t "mapcontroller" "Validation of controller section failed"
|
logger -s -t "mapcontroller" "Validation of controller section failed"
|
||||||
|
|||||||
@@ -1,37 +1,40 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2020 iopsys
|
# Copyright (C) 2020-22 IOPSYS Software Solutions AB
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=map-topology
|
PKG_NAME:=map-topology
|
||||||
PKG_VERSION:=3.2.12
|
PKG_VERSION:=2.5.0.7
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_VERSION:=dc59897b52ed1406175cd9314759c00aa12ed0a4
|
PKG_SOURCE_VERSION:=601f5fdc8b4051811593efa714954d4cb3d7b7dd
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_LICENSE:=PROPRIETARY IOPSYS
|
PKG_BUILD_DEPENDS:=ieee1905
|
||||||
|
|
||||||
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/map-topology
|
define Package/map-topology
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \
|
DEPENDS:=+libubox +ubus +libpthread +libuci +libeasy \
|
||||||
+libieee1905 +map-plugin +libavahi-nodbus-support
|
+libavahi-nodbus-support +libnetfilter-conntrack +libnfnetlink +libmnl
|
||||||
TITLE:=Utility to build topology of a multi-AP network
|
TITLE:=Utility to build topology of a multi-AP network
|
||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-I$(STAGING_DIR)/usr/include \
|
-I$(STAGING_DIR)/usr/include \
|
||||||
-I$(STAGING_DIR)/usr/include/libnl3 \
|
-I$(STAGING_DIR)/usr/include/libnl3 \
|
||||||
|
-I$(STAGING_DIR)/usr/include/libnetfilter_conntrack \
|
||||||
-D_GNU_SOURCE
|
-D_GNU_SOURCE
|
||||||
|
|
||||||
define Package/map-topology/description
|
define Package/map-topology/description
|
||||||
|
|||||||
@@ -21,5 +21,9 @@ config OBUSPA_MTP_ENABLE_STOMP
|
|||||||
config OBUSPA_MTP_ENABLE_COAP
|
config OBUSPA_MTP_ENABLE_COAP
|
||||||
bool "Enable CoAP as mtp protocol"
|
bool "Enable CoAP as mtp protocol"
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config OBUSPA_CONTROLLER_MTP_VERIFY
|
||||||
|
bool "Enable verification of MQTT response topic before processing the message"
|
||||||
|
default n
|
||||||
endmenu
|
endmenu
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=obuspa
|
PKG_NAME:=obuspa
|
||||||
PKG_VERSION:=5.0.0.7
|
PKG_VERSION:=5.0.0.16
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=79958289d3b5c3ffd3bd0af62e493e1bac757e77
|
PKG_SOURCE_VERSION:=cd47bcaf1cc82dfd5c10ea76491fd0dae4436cc6
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
|
||||||
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
|
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
@@ -31,7 +31,7 @@ define Package/obuspa
|
|||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=USP agent
|
TITLE:=USP agent
|
||||||
DEPENDS:=+libopenssl +libcurl +libsqlite3 +libubox +libubus +uspd +libmosquitto-ssl +libwebsockets-openssl
|
DEPENDS:=+libopenssl +libuci +libblobmsg-json +libcurl +libsqlite3 +libubox +libubus +libmosquitto-ssl +libwebsockets-openssl
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/obuspa/description
|
define Package/obuspa/description
|
||||||
@@ -43,11 +43,14 @@ define Package/obuspa/config
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-I$(STAGING_DIR)/usr/include \
|
|
||||||
-D_GNU_SOURCE \
|
-D_GNU_SOURCE \
|
||||||
-Wall \
|
-Wall \
|
||||||
-Werror
|
-Werror
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_OBUSPA_CONTROLLER_MTP_VERIFY),)
|
||||||
|
TARGET_CFLAGS += -DOBUSPA_CONTROLLER_MTP_VERIFY
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(CONFIG_OBUSPA_DB_PATH),)
|
ifneq ($(CONFIG_OBUSPA_DB_PATH),)
|
||||||
CONFIGURE_ARGS += \
|
CONFIGURE_ARGS += \
|
||||||
--localstatedir="$(CONFIG_OBUSPA_DB_PATH)"
|
--localstatedir="$(CONFIG_OBUSPA_DB_PATH)"
|
||||||
@@ -103,6 +106,7 @@ define Package/obuspa/install
|
|||||||
$(INSTALL_DATA) ./files/etc/obuspa/roles.json $(1)/etc/obuspa/roles.json
|
$(INSTALL_DATA) ./files/etc/obuspa/roles.json $(1)/etc/obuspa/roles.json
|
||||||
$(INSTALL_DATA) ./files/etc/obuspa/dmcaching_exclude.json $(1)/etc/obuspa/dmcaching_exclude.json
|
$(INSTALL_DATA) ./files/etc/obuspa/dmcaching_exclude.json $(1)/etc/obuspa/dmcaching_exclude.json
|
||||||
$(INSTALL_DATA) ./files/etc/bbfdm/json/USPAgent.json $(1)/etc/bbfdm/json/USPAgent.json
|
$(INSTALL_DATA) ./files/etc/bbfdm/json/USPAgent.json $(1)/etc/bbfdm/json/USPAgent.json
|
||||||
|
$(INSTALL_DATA) ./files/etc/bbfdm/json/TransferComplete.json $(1)/etc/bbfdm/json/TransferComplete.json
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,obuspa))
|
$(eval $(call BuildPackage,obuspa))
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ mqtt_num=0
|
|||||||
subs_num=0
|
subs_num=0
|
||||||
challenge_num=0
|
challenge_num=0
|
||||||
index=0
|
index=0
|
||||||
role_def_file=""
|
|
||||||
PROFILE="/root/.profile"
|
PROFILE="/root/.profile"
|
||||||
|
|
||||||
. /lib/functions/network.sh
|
. /lib/functions/network.sh
|
||||||
@@ -62,13 +61,15 @@ get_index() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_role_index_from_json() {
|
get_role_index_from_json() {
|
||||||
local role="$*"
|
local role="$1"
|
||||||
|
local role_def_file="$2"
|
||||||
local num=0
|
local num=0
|
||||||
local roles_obj
|
local roles_obj
|
||||||
|
|
||||||
# In case of role is empty or file not present
|
# In case of role is empty or file not present
|
||||||
if [ -z "${role}" ] || [ ! -f "${role_def_file}" ]; then
|
if [ -z "${role}" ] || [ ! -f "${role_def_file}" ]; then
|
||||||
return 0
|
echo "${num}"
|
||||||
|
return ${num}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
json_init
|
json_init
|
||||||
@@ -88,11 +89,12 @@ get_role_index_from_json() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${role}" = "${rname}" ]; then
|
if [ "${role}" = "${rname}" ]; then
|
||||||
|
echo "${num}"
|
||||||
return ${num}
|
return ${num}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
return 0
|
return ${num}
|
||||||
}
|
}
|
||||||
|
|
||||||
get_uci_ref_index() {
|
get_uci_ref_index() {
|
||||||
@@ -466,7 +468,9 @@ configure_subscription(){
|
|||||||
|
|
||||||
check_json_load()
|
check_json_load()
|
||||||
{
|
{
|
||||||
local ret=0
|
local ret
|
||||||
|
|
||||||
|
ret=0
|
||||||
if [ -f "${role_def_file}" ]; then
|
if [ -f "${role_def_file}" ]; then
|
||||||
json_init
|
json_init
|
||||||
if json_load_file "${role_def_file}" 2>&1 |grep -q Failed; then
|
if json_load_file "${role_def_file}" 2>&1 |grep -q Failed; then
|
||||||
@@ -481,8 +485,10 @@ check_json_load()
|
|||||||
get_role_index() {
|
get_role_index() {
|
||||||
local role="Device.LocalAgent.ControllerTrust.Role"
|
local role="Device.LocalAgent.ControllerTrust.Role"
|
||||||
local idx=0
|
local idx=0
|
||||||
local role_name="$*"
|
local role_name="$1"
|
||||||
|
local role_def_file
|
||||||
|
|
||||||
|
role_def_file=$(uci -q get obuspa.global.role_file 2>/dev/null)
|
||||||
case "${role_name}" in
|
case "${role_name}" in
|
||||||
'full_access')
|
'full_access')
|
||||||
idx=1;
|
idx=1;
|
||||||
@@ -493,9 +499,9 @@ get_role_index() {
|
|||||||
*)
|
*)
|
||||||
local ji=0
|
local ji=0
|
||||||
|
|
||||||
ji=$(check_json_load)
|
check_json_load
|
||||||
if [ "${ji}" -eq 0 ]; then
|
if [ "$?" -eq "0" ]; then
|
||||||
get_role_index_from_json "${role_name}"
|
ji=$(get_role_index_from_json "${role_name}" "${role_def_file}")
|
||||||
fi
|
fi
|
||||||
idx=$(( ji + 2 )) # Add predefined roles
|
idx=$(( ji + 2 )) # Add predefined roles
|
||||||
esac
|
esac
|
||||||
@@ -672,8 +678,6 @@ configure_obuspa() {
|
|||||||
|
|
||||||
validate_obuspa_section "global"
|
validate_obuspa_section "global"
|
||||||
|
|
||||||
role_def_file="${role_file}"
|
|
||||||
|
|
||||||
if [ "${debug}" -eq 1 ]; then
|
if [ "${debug}" -eq 1 ]; then
|
||||||
# Forward stdout of the command to logd
|
# Forward stdout of the command to logd
|
||||||
procd_set_param stdout 1
|
procd_set_param stdout 1
|
||||||
@@ -699,20 +703,16 @@ configure_obuspa() {
|
|||||||
|
|
||||||
if [ -n "${ifname}" ]; then
|
if [ -n "${ifname}" ]; then
|
||||||
procd_set_param env USP_BOARD_IFNAME="${ifname}"
|
procd_set_param env USP_BOARD_IFNAME="${ifname}"
|
||||||
# Set this variable for root user and obuspa -c tool
|
fi
|
||||||
|
|
||||||
|
if [ -z "${ifname}" ] || ! grep -F -q "export USP_BOARD_IFNAME=${ifname}" "${PROFILE}"; then
|
||||||
if [ -f "${PROFILE}" ]; then
|
if [ -f "${PROFILE}" ]; then
|
||||||
if grep -q "export USP_BOARD_IFNAME=${ifname}" ${PROFILE}; then
|
sed -i "/export USP_BOARD_IFNAME/d" "${PROFILE}"
|
||||||
if grep -q "export USP_BOARD_IFNAME" ${PROFILE}; then
|
|
||||||
sed -i "g/export USP_BOARD_IFNAME/d" ${PROFILE}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
echo "export USP_BOARD_IFNAME=${ifname}" >> ${PROFILE}
|
|
||||||
else
|
if [ -n "${ifname}" ]; then
|
||||||
if [ -f "$PROFILE" ]; then
|
# Set this variable for root user and obuspa -c tool
|
||||||
if grep -q "export USP_BOARD_IFNAME" ${PROFILE}; then
|
echo "export USP_BOARD_IFNAME=${ifname}" >> "${PROFILE}"
|
||||||
sed -i "g/export USP_BOARD_IFNAME/d" ${PROFILE}
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"dmcaching_exclude": [
|
"dmcaching_exclude": [
|
||||||
"Device.DeviceInfo.ProcessStatus.Process.",
|
"Device.DeviceInfo.ProcessStatus.Process.",
|
||||||
"Device.Hosts.Host."
|
"Device.Hosts.Host.",
|
||||||
|
"Device.WiFi.DataElements."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,14 +5,14 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=periodicstats
|
PKG_NAME:=periodicstats
|
||||||
PKG_VERSION:=1.1.0
|
PKG_VERSION:=1.2.0
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=7426c7458f792cc66920c206d62869c5620f1400
|
PKG_SOURCE_VERSION:=6c68428405bc88a9990e855f911aecc86f07f4a8
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/periodicstats.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/periodicstats.git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -20,13 +20,15 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
PKG_BUILD_DEPENDS:=bbf
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/periodicstats
|
define Package/periodicstats
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
TITLE:=Periodic Statistics Daemon
|
TITLE:=Periodic Statistics Daemon
|
||||||
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libbbf_api
|
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/periodicstats/description
|
define Package/periodicstats/description
|
||||||
@@ -35,7 +37,7 @@ endef
|
|||||||
|
|
||||||
ifeq ($(LOCAL_DEV),1)
|
ifeq ($(LOCAL_DEV),1)
|
||||||
define Build/Prepare
|
define Build/Prepare
|
||||||
$(CP) -rf ./periodicstats/* $(PKG_BUILD_DIR)/
|
$(CP) -rf ~/git/periodicstats/* $(PKG_BUILD_DIR)/
|
||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,12 @@ service_running() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
enable=$(uci -q get periodicstats.globals.enable)
|
local enable
|
||||||
|
|
||||||
if [ "$(enable)" != "1" ]; then
|
config_load periodicstats
|
||||||
|
config_get_bool enable globals enable 1
|
||||||
|
|
||||||
|
if [ "${enable}" -ne "1" ]; then
|
||||||
return 0;
|
return 0;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -24,7 +27,7 @@ start_service() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
procd_add_reload_trigger periodicstats uspd
|
procd_add_reload_trigger periodicstats
|
||||||
}
|
}
|
||||||
|
|
||||||
reload_service() {
|
reload_service() {
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
|
||||||
|
|
||||||
START=98
|
|
||||||
STOP=10
|
|
||||||
|
|
||||||
USE_PROCD=1
|
|
||||||
NAME=ponmngr
|
|
||||||
PROG="/usr/sbin/omcid start"
|
|
||||||
|
|
||||||
include /lib/pon
|
|
||||||
|
|
||||||
|
|
||||||
start_service() {
|
|
||||||
if [ -f "/etc/config/pon" ]; then
|
|
||||||
procd_open_instance $NAME
|
|
||||||
procd_set_param command ${PROG}
|
|
||||||
procd_set_param respawn
|
|
||||||
procd_close_instance
|
|
||||||
start_gpon
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
boot() {
|
|
||||||
start
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_service() {
|
|
||||||
service_stop ${PROG}
|
|
||||||
stop_gpon
|
|
||||||
}
|
|
||||||
|
|
||||||
reload_service() {
|
|
||||||
stop
|
|
||||||
start
|
|
||||||
}
|
|
||||||
|
|
||||||
25
ponmngr/files/etc/init.d/xpon
Executable file
25
ponmngr/files/etc/init.d/xpon
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
|
||||||
|
START=19
|
||||||
|
STOP=10
|
||||||
|
|
||||||
|
USE_PROCD=1
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
include /lib/xpon
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
if [ "$(uci -q get xpon.ani.enable)" == "1" ]; then
|
||||||
|
init_xpon
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_service() {
|
||||||
|
# stopping omcid does not bring down the pon link, which should happen
|
||||||
|
# if ANI is disabled or stopped (go to O1)
|
||||||
|
deinit_xpon
|
||||||
|
}
|
||||||
|
|
||||||
|
service_triggers() {
|
||||||
|
procd_add_reload_trigger "xpon"
|
||||||
|
}
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
basemac="$(db -q get hw.board.basemac | tr -d ':')"
|
|
||||||
|
|
||||||
if [ -s "/etc/config/pon" ]; then
|
|
||||||
if uci -q get pon.globals >/dev/null; then
|
|
||||||
# return if there is any valid content
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
rm -f /etc/config/pon
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
touch /etc/config/pon
|
|
||||||
|
|
||||||
mac=''
|
|
||||||
if [ -z "$basemac" ]; then
|
|
||||||
mac="12345678"
|
|
||||||
else
|
|
||||||
# read last 8 characters of basemac without :
|
|
||||||
mac=${basemac: -8}
|
|
||||||
fi
|
|
||||||
|
|
||||||
uci set pon.globals=globals
|
|
||||||
uci set pon.globals.enabled="1"
|
|
||||||
uci set pon.globals.serial_number="BRCM$mac"
|
|
||||||
|
|
||||||
uci commit pon
|
|
||||||
17
ponmngr/files/etc/uci-defaults/60-xpon-generate
Executable file
17
ponmngr/files/etc/uci-defaults/60-xpon-generate
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -s "/etc/config/xpon" ]; then
|
||||||
|
if uci -q get xpon.ani >/dev/null; then
|
||||||
|
# return if there is any valid content
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
rm -f /etc/config/xpon
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
touch /etc/config/xpon
|
||||||
|
|
||||||
|
|
||||||
|
uci set xpon.ani=ani
|
||||||
|
uci set xpon.ani.enable="1"
|
||||||
|
|
||||||
|
uci commit xpon
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
. /lib/functions.sh
|
|
||||||
. /usr/share/libubox/jshn.sh
|
|
||||||
|
|
||||||
configure_snpwd() {
|
|
||||||
local serial_no password
|
|
||||||
serial_no="$1"
|
|
||||||
password="$2"
|
|
||||||
|
|
||||||
# serial number comprises of 2 parts, vendor id and vendor specific, the vendor id is
|
|
||||||
# a string while the vendor specific is a hex, so split the 2 and set accordingly
|
|
||||||
local vendor_id vendor_specific
|
|
||||||
vendor_id=${serial_no:0:4}
|
|
||||||
vendor_specific=${serial_no: -8}
|
|
||||||
|
|
||||||
# attempt to conver vendor_id from string to hex
|
|
||||||
vendor_id=$(echo $vendor_id | hexdump -e '4/1 "%02X" "\n"')
|
|
||||||
vendor_id=${vendor_id:0:8}
|
|
||||||
|
|
||||||
bdmf_shell -c `cat /var/bdmf_sh_id` -cmd /b/configure gpon onu_sn={vendor_id=$vendor_id,vendor_specific=$vendor_specific}
|
|
||||||
if [ -n "$password" ]; then
|
|
||||||
password=$(echo $password | hexdump -n ${#password} -e '16/1 "%02X""\n"')
|
|
||||||
bdmf_shell -c `cat /var/bdmf_sh_id` -cmd /b/configure gpon password=$password
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
configure_gpon() {
|
|
||||||
local enabled serial_no password
|
|
||||||
config_load pon
|
|
||||||
config_get enabled globals "enabled"
|
|
||||||
|
|
||||||
if [ "$enabled" == "0" ]; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
config_get serial_no globals "serial_number"
|
|
||||||
config_get password globals "password"
|
|
||||||
|
|
||||||
configure_snpwd $serial_no $password
|
|
||||||
}
|
|
||||||
|
|
||||||
start_gpon() {
|
|
||||||
if [ -n "$(which gponctl)" ]; then
|
|
||||||
configure_gpon
|
|
||||||
gponctl start
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_gpon() {
|
|
||||||
if [ -n "$(which gponctl)" ]; then
|
|
||||||
gponctl stop
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
get_gpon_status() {
|
|
||||||
json_init
|
|
||||||
status="$(gponctl getstate)"
|
|
||||||
admin_status="$(echo $status | head -n1 | awk '{print $8;}')"
|
|
||||||
json_add_string "admin_status" "$admin_status"
|
|
||||||
op_status="$(echo $status | head -n1 | awk '{print $12;}')"
|
|
||||||
case $op_status in
|
|
||||||
NUMBER)
|
|
||||||
op_status="$(echo $status | head -n1 | awk '{print $13;}')"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
op_status=${op_status:1:2}
|
|
||||||
json_add_string "operational_status" "$op_status"
|
|
||||||
json_dump
|
|
||||||
}
|
|
||||||
20
ponmngr/files/lib/xpon/broadcom.sh
Normal file
20
ponmngr/files/lib/xpon/broadcom.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
USE_PROCD=1
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
|
||||||
|
init_xpon() {
|
||||||
|
procd_open_instance pon_msgd
|
||||||
|
procd_set_param command bcm_msgd -c gpon
|
||||||
|
procd_close_instance
|
||||||
|
procd_open_instance pon_daemon
|
||||||
|
procd_set_param command omcid start -n
|
||||||
|
procd_close_instance
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
deinit_xpon() {
|
||||||
|
gponctl stop
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
. /usr/share/libubox/jshn.sh
|
|
||||||
. /lib/functions.sh
|
|
||||||
include /lib/pon
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
list)
|
|
||||||
echo '{ "status": {} }'
|
|
||||||
;;
|
|
||||||
call)
|
|
||||||
case "$2" in
|
|
||||||
status)
|
|
||||||
get_gpon_status
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
IP_RULE=""
|
IP_RULE=""
|
||||||
BR_RULE=""
|
BR_RULE=""
|
||||||
|
BR6_RULE=""
|
||||||
|
|
||||||
POLICER_SKIP=0
|
|
||||||
POLICER_COUNT=0
|
POLICER_COUNT=0
|
||||||
INTF_NAME=""
|
INTF_NAME=""
|
||||||
Q_COUNT=0
|
Q_COUNT=0
|
||||||
@@ -292,6 +292,7 @@ flush_chains() {
|
|||||||
|
|
||||||
init_broute_rule() {
|
init_broute_rule() {
|
||||||
BR_RULE=""
|
BR_RULE=""
|
||||||
|
BR6_RULE=""
|
||||||
}
|
}
|
||||||
|
|
||||||
broute_filter_on_src_if() {
|
broute_filter_on_src_if() {
|
||||||
@@ -327,6 +328,82 @@ broute_filter_on_ether_type() {
|
|||||||
BR_RULE="$BR_RULE --proto $1"
|
BR_RULE="$BR_RULE --proto $1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
broute_filter_on_ether_type6() {
|
||||||
|
BR6_RULE="$BR6_RULE --proto IPv6"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_src_ip() {
|
||||||
|
BR_RULE="$BR_RULE --ip-src $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_dst_ip() {
|
||||||
|
BR_RULE="$BR_RULE --ip-dst $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ipv6_src_ip() {
|
||||||
|
BR_RULE="$BR_RULE --ip6-src $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ipv6_dst_ip() {
|
||||||
|
BR_RULE="$BR_RULE --ip6-dst $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ip_src_port() {
|
||||||
|
BR_RULE="$BR_RULE --ip-source-port $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ip_dst_port() {
|
||||||
|
BR_RULE="$BR_RULE --ip-destination-port $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ipv6_src_port() {
|
||||||
|
#when ethertype is not configured by user then both proto rules of ipv4
|
||||||
|
#and ipv6 to be installed so update BR6_RULE string as well otherwise
|
||||||
|
#update BR_RULE only for installation of ipv6 proto rule only.
|
||||||
|
if [ ! -z "$BR6_RULE" ]; then
|
||||||
|
BR6_RULE="$BR6_RULE --ip6-source-port $1"
|
||||||
|
else
|
||||||
|
BR_RULE="$BR_RULE --ip6-source-port $1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ipv6_dst_port() {
|
||||||
|
#when ethertype is not configured by user then both proto rules of ipv4
|
||||||
|
#and ipv6 to be installed so update BR6_RULE string as well otherwise
|
||||||
|
#update BR_RULE only for installation of ipv6 proto rule only.
|
||||||
|
if [ ! -z "$BR6_RULE" ]; then
|
||||||
|
BR6_RULE="$BR6_RULE --ip6-destination-port $1"
|
||||||
|
else
|
||||||
|
BR_RULE="$BR_RULE --ip6-destination-port $1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ip_protocol() {
|
||||||
|
BR_RULE="$BR_RULE --ip-proto $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ipv6_protocol() {
|
||||||
|
#when ethertype is not configured by user then both proto rules of ipv4
|
||||||
|
#and ipv6 to be installed so update BR6_RULE string as well otherwise
|
||||||
|
#update BR_RULE only for installation of ipv6 proto rule only.
|
||||||
|
if [ ! -z "$BR6_RULE" ]; then
|
||||||
|
BR6_RULE="$BR6_RULE --ip6-proto $1"
|
||||||
|
else
|
||||||
|
BR_RULE="$BR_RULE --ip6-proto $1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ebt_match_ipv6_dscp() {
|
||||||
|
#when ethertype is not configured by user then both proto rules of ipv4
|
||||||
|
#and ipv6 to be installed so update BR6_RULE string as well otherwise
|
||||||
|
#update BR_RULE only for installation of ipv6 proto rule only.
|
||||||
|
if [ ! -z "$BR6_RULE" ]; then
|
||||||
|
BR6_RULE="$BR6_RULE --ip6-tclass $1"
|
||||||
|
else
|
||||||
|
BR_RULE="$BR_RULE --ip6-tclass $1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
broute_filter_on_dscp() {
|
broute_filter_on_dscp() {
|
||||||
# The broadcom option --ip-dscp-extend actually accepts tos
|
# The broadcom option --ip-dscp-extend actually accepts tos
|
||||||
# and not dscp and that too in hex, hence, perform the conversion
|
# and not dscp and that too in hex, hence, perform the conversion
|
||||||
@@ -353,11 +430,145 @@ broute_filter_on_vid() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
broute_rule_set_traffic_class() {
|
broute_rule_set_traffic_class() {
|
||||||
|
#when ethertype is not configured by user then both proto rules of ipv4
|
||||||
|
#and ipv6 to be installed so update BR6_RULE string as well otherwise
|
||||||
|
#update BR_RULE only for installation of ipv6 proto rule only.
|
||||||
BR_RULE="$BR_RULE -j mark --mark-or 0x$1 --mark-target ACCEPT"
|
BR_RULE="$BR_RULE -j mark --mark-or 0x$1 --mark-target ACCEPT"
|
||||||
|
if [ ! -z "$BR6_RULE" ]; then
|
||||||
|
BR6_RULE="$BR6_RULE -j mark --mark-or 0x$1 --mark-target ACCEPT"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
broute_append_rule() {
|
broute_append_rule() {
|
||||||
|
#when ethertype is not configured by user then both proto rules of ipv4
|
||||||
|
#and ipv6 to be installed otherwise install ipv6 proto rule only.
|
||||||
echo "ebtables -t broute -A qos $BR_RULE" >> /tmp/qos/classify.ebtables
|
echo "ebtables -t broute -A qos $BR_RULE" >> /tmp/qos/classify.ebtables
|
||||||
|
if [ -n "$BR6_RULE" ]; then
|
||||||
|
echo "ebtables -t broute -A qos $BR6_RULE" >> /tmp/qos/classify.ebtables
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_ip_addr()
|
||||||
|
{
|
||||||
|
local cid=$1
|
||||||
|
local match_src_ip_func=$2
|
||||||
|
local match_dst_ip_func=$3
|
||||||
|
|
||||||
|
config_get src_ip "$cid" "src_ip"
|
||||||
|
config_get dst_ip "$cid" "dest_ip"
|
||||||
|
|
||||||
|
if [ ! -z "$src_ip" ]; then
|
||||||
|
$match_src_ip_func "$src_ip"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$dst_ip" ]; then
|
||||||
|
$match_dst_ip_func "$dst_ip"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_ports()
|
||||||
|
{
|
||||||
|
local cid=$1
|
||||||
|
local match_src_port_func=$2
|
||||||
|
local match_dst_port_func=$3
|
||||||
|
local src_port=""
|
||||||
|
local dst_port=""
|
||||||
|
local src_port_range=""
|
||||||
|
local dst_port_range=""
|
||||||
|
|
||||||
|
config_get src_port "$cid" "src_port"
|
||||||
|
config_get dst_port "$cid" "dest_port"
|
||||||
|
config_get src_port_range "$cid" "src_port_range"
|
||||||
|
config_get dst_port_range "$cid" "dest_port_range"
|
||||||
|
|
||||||
|
if ! [ -z $src_port ] && ! [ -z $src_port_range ]; then
|
||||||
|
$match_src_port_func "$src_port:$src_port_range"
|
||||||
|
elif [ ! -z $src_port ]; then
|
||||||
|
$match_src_port_func $src_port
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ -z $dst_port ] && ! [ -z $dst_port_range ]; then
|
||||||
|
$match_dst_port_func "$dst_port:$dst_port_range"
|
||||||
|
elif [ ! -z $dst_port ]; then
|
||||||
|
$match_dst_port_func $dst_port
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
protocol_string_to_num()
|
||||||
|
{
|
||||||
|
local value=-1
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
*[0-9]*) value="$1"
|
||||||
|
;;
|
||||||
|
TCP|tcp) value=6
|
||||||
|
;;
|
||||||
|
UDP|udp) value=17
|
||||||
|
;;
|
||||||
|
ICMP|icmp) value=1
|
||||||
|
;;
|
||||||
|
ICMPv6|icmpv6) value=58
|
||||||
|
;;
|
||||||
|
IGMP|igmp) value=2
|
||||||
|
;;
|
||||||
|
SCTP|sctp) value=132
|
||||||
|
;;
|
||||||
|
*) value=-1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo $value
|
||||||
|
}
|
||||||
|
|
||||||
|
broute_ipv4_rule_options()
|
||||||
|
{
|
||||||
|
local cid=$1
|
||||||
|
config_get protocol "$cid" "proto"
|
||||||
|
config_get dscp_filter "$cid" "dscp_filter"
|
||||||
|
|
||||||
|
set_ip_addr $cid ebt_match_src_ip ebt_match_dst_ip
|
||||||
|
|
||||||
|
if [ ! -z $dscp_filter ]; then
|
||||||
|
broute_filter_on_dscp "$dscp_filter"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z $protocol ]; then
|
||||||
|
local proto_num=$(protocol_string_to_num "$protocol")
|
||||||
|
ebt_match_ip_protocol "$proto_num"
|
||||||
|
|
||||||
|
#port installation for protol tcp/udp/sctp
|
||||||
|
if [ $proto_num = "6" ] || [ $proto_num = "17" ] || [ $proto_num = "132" ] ; then
|
||||||
|
set_ports "$cid" ebt_match_ip_src_port ebt_match_ip_dst_port
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
broute_ipv6_rule_options()
|
||||||
|
{
|
||||||
|
local cid=$1
|
||||||
|
|
||||||
|
config_get protocol "$cid" "proto"
|
||||||
|
config_get dscp_filter "$cid" "dscp_filter"
|
||||||
|
|
||||||
|
set_ip_addr $cid ebt_match_ipv6_src_ip ebt_match_ipv6_dst_ip
|
||||||
|
|
||||||
|
if [ ! -z $dscp_filter ]; then
|
||||||
|
local tos_val
|
||||||
|
local tos_hex
|
||||||
|
|
||||||
|
tos_val=$(($dscp_filter<<2))
|
||||||
|
tos_hex=$(printf "%x" $tos_val)
|
||||||
|
ebt_match_ipv6_dscp "$tos_hex"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z $protocol ]; then
|
||||||
|
local proto_num=$(protocol_string_to_num "$protocol")
|
||||||
|
ebt_match_ipv6_protocol "$proto_num"
|
||||||
|
|
||||||
|
#port installation for protol tcp/udp/sctp
|
||||||
|
if [ $proto_num = "6" ] || [ $proto_num = "17" ] || [ $proto_num = "132" ]; then
|
||||||
|
set_ports "$cid" ebt_match_ipv6_src_port ebt_match_ipv6_dst_port
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_ebtables_rules() {
|
handle_ebtables_rules() {
|
||||||
@@ -365,6 +576,8 @@ handle_ebtables_rules() {
|
|||||||
local is_l2_rule=0
|
local is_l2_rule=0
|
||||||
local src_dhcp_options=""
|
local src_dhcp_options=""
|
||||||
local dst_dhcp_options=""
|
local dst_dhcp_options=""
|
||||||
|
local protocol=""
|
||||||
|
local ip_version=""
|
||||||
|
|
||||||
init_broute_rule
|
init_broute_rule
|
||||||
|
|
||||||
@@ -382,8 +595,9 @@ handle_ebtables_rules() {
|
|||||||
config_get dst_clid "$sid" "dst_client_id" # dhcp option 61
|
config_get dst_clid "$sid" "dst_client_id" # dhcp option 61
|
||||||
config_get src_ucid "$sid" "src_user_class_id" # dhcp option 77
|
config_get src_ucid "$sid" "src_user_class_id" # dhcp option 77
|
||||||
config_get dst_ucid "$sid" "dst_user_class_id" # dhcp option 77
|
config_get dst_ucid "$sid" "dst_user_class_id" # dhcp option 77
|
||||||
|
|
||||||
config_get traffic_class "$sid" "traffic_class"
|
config_get traffic_class "$sid" "traffic_class"
|
||||||
|
config_get protocol "$sid" "proto"
|
||||||
|
|
||||||
|
|
||||||
if [ -n "$src_if" ]; then
|
if [ -n "$src_if" ]; then
|
||||||
for interf in $(db -q get hw.board.ethernetPortOrder); do
|
for interf in $(db -q get hw.board.ethernetPortOrder); do
|
||||||
@@ -410,13 +624,6 @@ handle_ebtables_rules() {
|
|||||||
is_l2_rule=1
|
is_l2_rule=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$dscp_filter" ]; then
|
|
||||||
# filter on ethertype and proto is same thing
|
|
||||||
broute_filter_on_ether_type IPv4
|
|
||||||
broute_filter_on_dscp $dscp_filter
|
|
||||||
is_l2_rule=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$eth_type" ]; then
|
if [ -n "$eth_type" ]; then
|
||||||
broute_filter_on_ether_type $eth_type
|
broute_filter_on_ether_type $eth_type
|
||||||
is_l2_rule=1
|
is_l2_rule=1
|
||||||
@@ -427,6 +634,47 @@ handle_ebtables_rules() {
|
|||||||
is_l2_rule=1
|
is_l2_rule=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case $eth_type in
|
||||||
|
IPv4|IPV4|0800)
|
||||||
|
ip_version=4
|
||||||
|
;;
|
||||||
|
IPv6|IPV6|86DD)
|
||||||
|
ip_version=6
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ -z "$eth_type" ]; then
|
||||||
|
case $src_ip$dest_ip in
|
||||||
|
*.*)
|
||||||
|
ip_version=4
|
||||||
|
broute_filter_on_ether_type "IPv4"
|
||||||
|
;;
|
||||||
|
*:*)
|
||||||
|
ip_version=6
|
||||||
|
broute_filter_on_ether_type "IPv6"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ -n "$protocol" ] || [ -n "$dscp_filter" ]; then
|
||||||
|
ip_version=1 #neither ether_type nor ip address used
|
||||||
|
#ethertype is not configured by user so install
|
||||||
|
#both proto ipv4 and ipv6 rule
|
||||||
|
BR6_RULE="$BR_RULE"
|
||||||
|
broute_filter_on_ether_type "IPv4"
|
||||||
|
broute_filter_on_ether_type6 "IPv6"
|
||||||
|
fi
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ $ip_version = "4" ] || [ $ip_version = "1" ]; then
|
||||||
|
broute_ipv4_rule_options "$sid"
|
||||||
|
is_l2_rule=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ip_version = "6" ] || [ $ip_version = "1" ]; then
|
||||||
|
broute_ipv6_rule_options "$sid"
|
||||||
|
is_l2_rule=1
|
||||||
|
fi
|
||||||
|
|
||||||
# first process options that will help figure our source mac address
|
# first process options that will help figure our source mac address
|
||||||
# dhcp option for "vendor class id"
|
# dhcp option for "vendor class id"
|
||||||
if [ -n "$src_vcid" ]; then
|
if [ -n "$src_vcid" ]; then
|
||||||
@@ -757,12 +1005,7 @@ handle_policer_rules() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# The policer object is not available on non BCM968* chips
|
config_ingress_rate_limit $ifname $ingress_rate $in_burst_size
|
||||||
if [ $POLICER_SKIP -eq 1 ]; then
|
|
||||||
assign_policer_to_port $ifname $pindex
|
|
||||||
else
|
|
||||||
config_ingress_rate_limit $ifname $ingress_rate $in_burst_size
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -857,11 +1100,16 @@ pre_configure_queue() {
|
|||||||
mkdir -p /tmp/qos/queue_stats/$intf
|
mkdir -p /tmp/qos/queue_stats/$intf
|
||||||
touch /tmp/qos/queue_stats/$intf/q_idx
|
touch /tmp/qos/queue_stats/$intf/q_idx
|
||||||
echo 0 > /tmp/qos/queue_stats/$intf/q_idx
|
echo 0 > /tmp/qos/queue_stats/$intf/q_idx
|
||||||
|
|
||||||
|
# tm initialization pushing ahead of delcfg as
|
||||||
|
# porttminit bydefault configures all queue as SP configuration.
|
||||||
|
# that was causing WRR queue configuration failure.
|
||||||
|
tmctl porttminit --devtype 0 --if $intf --flag 0 --numqueues 8
|
||||||
|
|
||||||
i=0
|
i=0
|
||||||
for i in 0 1 2 3 4 5 6 7; do
|
for i in 0 1 2 3 4 5 6 7; do
|
||||||
tmctl delqcfg --devtype 0 --if $intf --qid $i &>/dev/null
|
tmctl delqcfg --devtype 0 --if $intf --qid $i &>/dev/null
|
||||||
done
|
done
|
||||||
tmctl porttminit --devtype 0 --if $intf --flag 0 --numqueues 8
|
|
||||||
|
|
||||||
mkdir -p /tmp/qos/$intf
|
mkdir -p /tmp/qos/$intf
|
||||||
touch /tmp/qos/$intf/q_order
|
touch /tmp/qos/$intf/q_order
|
||||||
@@ -880,17 +1128,15 @@ configure_queue() {
|
|||||||
configure_policer() {
|
configure_policer() {
|
||||||
# The policer object is not available on non BCM968* chips, just clean up
|
# The policer object is not available on non BCM968* chips, just clean up
|
||||||
# the old config if any and return
|
# the old config if any and return
|
||||||
if [ $POLICER_SKIP -eq 0 ]; then
|
for intf in $(db get hw.board.ethernetPortOrder); do
|
||||||
for intf in $(db get hw.board.ethernetPortOrder); do
|
local unitport="$(get_port_number $intf)"
|
||||||
local unitport="$(get_port_number $intf)"
|
local unit=$(echo $unitport | cut -d ' ' -f 1)
|
||||||
local unit=$(echo $unitport | cut -d ' ' -f 1)
|
local port=$(echo $unitport | cut -d ' ' -f 2)
|
||||||
local port=$(echo $unitport | cut -d ' ' -f 2)
|
# setting rate and burst size to 0 disables rate limiting
|
||||||
# setting rate and burst size to 0 disables rate limiting
|
if [ $port != "" -a $unit != "" ]; then
|
||||||
if [ $port != "" -a $unit != "" ]; then
|
ethswctl -c rxratectrl -n $unit -p $port -x 0 -y 0
|
||||||
ethswctl -c rxratectrl -n $unit -p $port -x 0 -y 0
|
fi
|
||||||
fi
|
done
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Delete policer
|
# Delete policer
|
||||||
local i=0
|
local i=0
|
||||||
@@ -931,10 +1177,6 @@ reload_qos() {
|
|||||||
local service_name="$1"
|
local service_name="$1"
|
||||||
local cpu_model="$(cat /proc/socinfo | grep 'SoC Name' | cut -d':' -f2)"
|
local cpu_model="$(cat /proc/socinfo | grep 'SoC Name' | cut -d':' -f2)"
|
||||||
|
|
||||||
case $cpu_model in
|
|
||||||
BCM68*|BCM6755) POLICER_SKIP=1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -z "$service_name" ]; then
|
if [ -z "$service_name" ]; then
|
||||||
configure_qos
|
configure_qos
|
||||||
elif [ "$service_name" == "shaper" ]; then
|
elif [ "$service_name" == "shaper" ]; then
|
||||||
|
|||||||
@@ -1,21 +1,20 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2013-2020 iopsys
|
# Copyright (C) 2013-2022 iopsys
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
|
||||||
|
|
||||||
PKG_NAME:=questd
|
PKG_NAME:=questd
|
||||||
PKG_VERSION:=5.2.3
|
PKG_VERSION:=5.2.4
|
||||||
|
|
||||||
PKG_SOURCE_VERSION:=cf54bd65ec821ac67f3aa1caeebcd3ea9aae07ad
|
LOCAL_DEV:=0
|
||||||
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/questd
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/questd
|
||||||
|
PKG_SOURCE_VERSION:=2ca3ae0c29dcbbf01282f6118eb8d5e5bc9a1c45
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
endif
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
@@ -23,8 +22,6 @@ PKG_LICENSE_FILES:=LICENSE
|
|||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
include $(INCLUDE_DIR)/cmake.mk
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
PKG_INSTALL:=
|
|
||||||
|
|
||||||
define Package/questd
|
define Package/questd
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
DEPENDS:=+libuci +libubox +ubus +libpthread
|
DEPENDS:=+libuci +libubox +ubus +libpthread
|
||||||
@@ -36,6 +33,13 @@ define Package/questd/description
|
|||||||
this information via ubus
|
this information via ubus
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
ifeq ($(LOCAL_DEV),1)
|
||||||
|
CMAKE_OPTIONS:=-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
|
||||||
|
define Build/Prepare
|
||||||
|
$(CP) -rf ~/git/code/questd/* $(PKG_BUILD_DIR)/
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
define Package/questd/install
|
define Package/questd/install
|
||||||
$(CP) ./files/* $(1)/
|
$(CP) ./files/* $(1)/
|
||||||
$(INSTALL_DIR) $(1)/sbin
|
$(INSTALL_DIR) $(1)/sbin
|
||||||
|
|||||||
@@ -1,23 +1,22 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2018 iopsys
|
# Copyright (C) 2018-2022 iopsys
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=rulengd
|
PKG_NAME:=rulengd
|
||||||
PKG_VERSION:=1.2.6
|
PKG_VERSION:=1.2.7
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_BUILD_PARALLEL:=1
|
|
||||||
PKG_INSTALL:=1
|
|
||||||
|
|
||||||
|
LOCAL_DEV:=0
|
||||||
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO=git
|
PKG_SOURCE_PROTO=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/rulengd.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/rulengd.git
|
||||||
PKG_SOURCE_VERSION:=e323bebe85cd7fb4eeb6cee535188227bc9b81e3
|
PKG_SOURCE_VERSION:=1f247e1afc845f47348febffa55fe40d8b552737
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
PKG_SOURCE_SUBDIR:=${PKG_NAME}-${PKG_VERSION}
|
endif
|
||||||
PKG_INSTALL:=1
|
|
||||||
PKG_BUILD_PARALLEL:=1
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
@@ -35,6 +34,14 @@ define Package/rulengd/description
|
|||||||
rulengd listens for events and executes speficied methods if the incoming event arguments contain speficied ones.
|
rulengd listens for events and executes speficied methods if the incoming event arguments contain speficied ones.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
#CMAKE_OPTIONS:=-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
|
||||||
|
|
||||||
|
ifeq ($(LOCAL_DEV),1)
|
||||||
|
define Build/Prepare
|
||||||
|
$(CP) -rf ~/git/code/rulengd/* $(PKG_BUILD_DIR)/
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
define Package/rulengd/install
|
define Package/rulengd/install
|
||||||
$(CP) ./files/* $(1)/
|
$(CP) ./files/* $(1)/
|
||||||
$(INSTALL_DIR) $(1)/usr/bin
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (C) 2012-2014 OpenWrt.org
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
|
|
||||||
PKG_NAME:=shflags
|
|
||||||
PKG_VERSION:=2012-06-11
|
|
||||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
|
||||||
PKG_SOURCE_URL:=https://github.com/kward/shflags.git
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_SOURCE_VERSION:=c12b30cebb92b49c5edb6df255c0952c65b4ddc6
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
|
||||||
PKG_MIRROR_HASH:=skip
|
|
||||||
PKG_LICENSE:=LGPL-2.1
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
define Package/shflags
|
|
||||||
SECTION:=libs
|
|
||||||
CATEGORY:=Libraries
|
|
||||||
TITLE:=shflags
|
|
||||||
DEPENDS:=+getopt
|
|
||||||
URL:=http://code.google.com/p/shflags/
|
|
||||||
MAINTAINER:=Luka Perkov <luka@openwrt.org>
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/shflags/description
|
|
||||||
command-line flags module for Unix shell scripts
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Configure
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Compile
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Install
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/shflags/install
|
|
||||||
$(INSTALL_DIR) $(1)/usr/share/shflags
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/source/1.0/src/shflags $(1)/usr/share/shflags/shflags.sh
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage,shflags))
|
|
||||||
@@ -1,763 +0,0 @@
|
|||||||
--- a/source/1.0/src/shflags
|
|
||||||
+++ b/source/1.0/src/shflags
|
|
||||||
@@ -1,91 +1,10 @@
|
|
||||||
-# $Id$
|
|
||||||
-# vim:et:ft=sh:sts=2:sw=2
|
|
||||||
-#
|
|
||||||
-# Copyright 2008 Kate Ward. All Rights Reserved.
|
|
||||||
-# Released under the LGPL (GNU Lesser General Public License)
|
|
||||||
-#
|
|
||||||
-# shFlags -- Advanced command-line flag library for Unix shell scripts.
|
|
||||||
-# http://code.google.com/p/shflags/
|
|
||||||
-#
|
|
||||||
-# Author: kate.ward@forestent.com (Kate Ward)
|
|
||||||
-#
|
|
||||||
-# This module implements something like the google-gflags library available
|
|
||||||
-# from http://code.google.com/p/google-gflags/.
|
|
||||||
-#
|
|
||||||
-# FLAG TYPES: This is a list of the DEFINE_*'s that you can do. All flags take
|
|
||||||
-# a name, default value, help-string, and optional 'short' name (one-letter
|
|
||||||
-# name). Some flags have other arguments, which are described with the flag.
|
|
||||||
-#
|
|
||||||
-# DEFINE_string: takes any input, and intreprets it as a string.
|
|
||||||
-#
|
|
||||||
-# DEFINE_boolean: typically does not take any argument: say --myflag to set
|
|
||||||
-# FLAGS_myflag to true, or --nomyflag to set FLAGS_myflag to false.
|
|
||||||
-# Alternately, you can say
|
|
||||||
-# --myflag=true or --myflag=t or --myflag=0 or
|
|
||||||
-# --myflag=false or --myflag=f or --myflag=1
|
|
||||||
-# Passing an option has the same affect as passing the option once.
|
|
||||||
-#
|
|
||||||
-# DEFINE_float: takes an input and intreprets it as a floating point number. As
|
|
||||||
-# shell does not support floats per-se, the input is merely validated as
|
|
||||||
-# being a valid floating point value.
|
|
||||||
-#
|
|
||||||
-# DEFINE_integer: takes an input and intreprets it as an integer.
|
|
||||||
-#
|
|
||||||
-# SPECIAL FLAGS: There are a few flags that have special meaning:
|
|
||||||
-# --help (or -?) prints a list of all the flags in a human-readable fashion
|
|
||||||
-# --flagfile=foo read flags from foo. (not implemented yet)
|
|
||||||
-# -- as in getopt(), terminates flag-processing
|
|
||||||
-#
|
|
||||||
-# EXAMPLE USAGE:
|
|
||||||
-#
|
|
||||||
-# -- begin hello.sh --
|
|
||||||
-# #! /bin/sh
|
|
||||||
-# . ./shflags
|
|
||||||
-# DEFINE_string name 'world' "somebody's name" n
|
|
||||||
-# FLAGS "$@" || exit $?
|
|
||||||
-# eval set -- "${FLAGS_ARGV}"
|
|
||||||
-# echo "Hello, ${FLAGS_name}."
|
|
||||||
-# -- end hello.sh --
|
|
||||||
-#
|
|
||||||
-# $ ./hello.sh -n Kate
|
|
||||||
-# Hello, Kate.
|
|
||||||
-#
|
|
||||||
-# NOTE: Not all systems include a getopt version that supports long flags. On
|
|
||||||
-# these systems, only short flags are recognized.
|
|
||||||
-
|
|
||||||
-#==============================================================================
|
|
||||||
-# shFlags
|
|
||||||
-#
|
|
||||||
-# Shared attributes:
|
|
||||||
-# flags_error: last error message
|
|
||||||
-# flags_return: last return value
|
|
||||||
-#
|
|
||||||
-# __flags_longNames: list of long names for all flags
|
|
||||||
-# __flags_shortNames: list of short names for all flags
|
|
||||||
-# __flags_boolNames: list of boolean flag names
|
|
||||||
-#
|
|
||||||
-# __flags_opts: options parsed by getopt
|
|
||||||
-#
|
|
||||||
-# Per-flag attributes:
|
|
||||||
-# FLAGS_<flag_name>: contains value of flag named 'flag_name'
|
|
||||||
-# __flags_<flag_name>_default: the default flag value
|
|
||||||
-# __flags_<flag_name>_help: the flag help string
|
|
||||||
-# __flags_<flag_name>_short: the flag short name
|
|
||||||
-# __flags_<flag_name>_type: the flag type
|
|
||||||
-#
|
|
||||||
-# Notes:
|
|
||||||
-# - lists of strings are space separated, and a null value is the '~' char.
|
|
||||||
-
|
|
||||||
-# return if FLAGS already loaded
|
|
||||||
[ -n "${FLAGS_VERSION:-}" ] && return 0
|
|
||||||
FLAGS_VERSION='1.0.3'
|
|
||||||
|
|
||||||
-# return values
|
|
||||||
FLAGS_TRUE=0
|
|
||||||
FLAGS_FALSE=1
|
|
||||||
FLAGS_ERROR=2
|
|
||||||
|
|
||||||
-# reserved flag names
|
|
||||||
FLAGS_RESERVED='ARGC ARGV ERROR FALSE HELP PARENT RESERVED TRUE VERSION'
|
|
||||||
|
|
||||||
_flags_debug() { echo "flags:DEBUG $@" >&2; }
|
|
||||||
@@ -93,7 +12,6 @@ _flags_warn() { echo "flags:WARN $@" >&2
|
|
||||||
_flags_error() { echo "flags:ERROR $@" >&2; }
|
|
||||||
_flags_fatal() { echo "flags:FATAL $@" >&2; }
|
|
||||||
|
|
||||||
-# specific shell checks
|
|
||||||
if [ -n "${ZSH_VERSION:-}" ]; then
|
|
||||||
setopt |grep "^shwordsplit$" >/dev/null
|
|
||||||
if [ $? -ne ${FLAGS_TRUE} ]; then
|
|
||||||
@@ -107,20 +25,15 @@ if [ -n "${ZSH_VERSION:-}" ]; then
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
-#
|
|
||||||
-# constants
|
|
||||||
-#
|
|
||||||
|
|
||||||
-# getopt version
|
|
||||||
__FLAGS_GETOPT_VERS_STD=0
|
|
||||||
__FLAGS_GETOPT_VERS_ENH=1
|
|
||||||
__FLAGS_GETOPT_VERS_BSD=2
|
|
||||||
|
|
||||||
getopt >/dev/null 2>&1
|
|
||||||
case $? in
|
|
||||||
- 0) __FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_STD} ;; # bsd getopt
|
|
||||||
+ 0) __FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_STD} ;;
|
|
||||||
2)
|
|
||||||
- # TODO(kward): look into '-T' option to test the internal getopt() version
|
|
||||||
if [ "`getopt --version`" = '-- ' ]; then
|
|
||||||
__FLAGS_GETOPT_VERS=${__FLAGS_GETOPT_VERS_STD}
|
|
||||||
else
|
|
||||||
@@ -133,82 +46,49 @@ case $? in
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
-# getopt optstring lengths
|
|
||||||
__FLAGS_OPTSTR_SHORT=0
|
|
||||||
__FLAGS_OPTSTR_LONG=1
|
|
||||||
|
|
||||||
__FLAGS_NULL='~'
|
|
||||||
|
|
||||||
-# flag info strings
|
|
||||||
__FLAGS_INFO_DEFAULT='default'
|
|
||||||
__FLAGS_INFO_HELP='help'
|
|
||||||
__FLAGS_INFO_SHORT='short'
|
|
||||||
__FLAGS_INFO_TYPE='type'
|
|
||||||
|
|
||||||
-# flag lengths
|
|
||||||
__FLAGS_LEN_SHORT=0
|
|
||||||
__FLAGS_LEN_LONG=1
|
|
||||||
|
|
||||||
-# flag types
|
|
||||||
__FLAGS_TYPE_NONE=0
|
|
||||||
__FLAGS_TYPE_BOOLEAN=1
|
|
||||||
__FLAGS_TYPE_FLOAT=2
|
|
||||||
__FLAGS_TYPE_INTEGER=3
|
|
||||||
__FLAGS_TYPE_STRING=4
|
|
||||||
|
|
||||||
-# set the constants readonly
|
|
||||||
__flags_constants=`set |awk -F= '/^FLAGS_/ || /^__FLAGS_/ {print $1}'`
|
|
||||||
for __flags_const in ${__flags_constants}; do
|
|
||||||
- # skip certain flags
|
|
||||||
case ${__flags_const} in
|
|
||||||
FLAGS_HELP) continue ;;
|
|
||||||
FLAGS_PARENT) continue ;;
|
|
||||||
esac
|
|
||||||
- # set flag readonly
|
|
||||||
if [ -z "${ZSH_VERSION:-}" ]; then
|
|
||||||
readonly ${__flags_const}
|
|
||||||
- else # handle zsh
|
|
||||||
+ else
|
|
||||||
case ${ZSH_VERSION} in
|
|
||||||
[123].*) readonly ${__flags_const} ;;
|
|
||||||
- *) readonly -g ${__flags_const} ;; # declare readonly constants globally
|
|
||||||
+ *) readonly -g ${__flags_const} ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
unset __flags_const __flags_constants
|
|
||||||
|
|
||||||
-#
|
|
||||||
-# internal variables
|
|
||||||
-#
|
|
||||||
-
|
|
||||||
-__flags_boolNames=' ' # space separated list of boolean flag names
|
|
||||||
-__flags_longNames=' ' # space separated list of long flag names
|
|
||||||
-__flags_shortNames=' ' # space separated list of short flag names
|
|
||||||
-
|
|
||||||
-__flags_columns='' # screen width in columns
|
|
||||||
-__flags_opts='' # temporary storage for parsed getopt flags
|
|
||||||
-
|
|
||||||
-#------------------------------------------------------------------------------
|
|
||||||
-# private functions
|
|
||||||
-#
|
|
||||||
-
|
|
||||||
-# Define a flag.
|
|
||||||
-#
|
|
||||||
-# Calling this function will define the following info variables for the
|
|
||||||
-# specified flag:
|
|
||||||
-# FLAGS_flagname - the name for this flag (based upon the long flag name)
|
|
||||||
-# __flags_<flag_name>_default - the default value
|
|
||||||
-# __flags_flagname_help - the help string
|
|
||||||
-# __flags_flagname_short - the single letter alias
|
|
||||||
-# __flags_flagname_type - the type of flag (one of __FLAGS_TYPE_*)
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# _flags__type: integer: internal type of flag (__FLAGS_TYPE_*)
|
|
||||||
-# _flags__name: string: long flag name
|
|
||||||
-# _flags__default: default flag value
|
|
||||||
-# _flags__help: string: help string
|
|
||||||
-# _flags__short: string: (optional) short flag name
|
|
||||||
-# Returns:
|
|
||||||
-# integer: success of operation, or error
|
|
||||||
+
|
|
||||||
+__flags_boolNames=' '
|
|
||||||
+__flags_longNames=' '
|
|
||||||
+__flags_shortNames=' '
|
|
||||||
+__flags_columns=''
|
|
||||||
+__flags_opts=''
|
|
||||||
+
|
|
||||||
_flags_define()
|
|
||||||
{
|
|
||||||
if [ $# -lt 4 ]; then
|
|
||||||
@@ -226,16 +106,13 @@ _flags_define()
|
|
||||||
|
|
||||||
_flags_return_=${FLAGS_TRUE}
|
|
||||||
|
|
||||||
- # TODO(kward): check for validity of the flag name (e.g. dashes)
|
|
||||||
|
|
||||||
- # check whether the flag name is reserved
|
|
||||||
echo " ${FLAGS_RESERVED} " |grep " ${_flags_name_} " >/dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
flags_error="flag name (${_flags_name_}) is reserved"
|
|
||||||
_flags_return_=${FLAGS_ERROR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # require short option for getopt that don't support long options
|
|
||||||
if [ ${_flags_return_} -eq ${FLAGS_TRUE} \
|
|
||||||
-a ${__FLAGS_GETOPT_VERS} -ne ${__FLAGS_GETOPT_VERS_ENH} \
|
|
||||||
-a "${_flags_short_}" = "${__FLAGS_NULL}" ]
|
|
||||||
@@ -244,7 +121,6 @@ _flags_define()
|
|
||||||
_flags_return_=${FLAGS_ERROR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # check for existing long name definition
|
|
||||||
if [ ${_flags_return_} -eq ${FLAGS_TRUE} ]; then
|
|
||||||
if _flags_itemInList "${_flags_name_}" \
|
|
||||||
${__flags_longNames} ${__flags_boolNames}
|
|
||||||
@@ -255,7 +131,6 @@ _flags_define()
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # check for existing short name definition
|
|
||||||
if [ ${_flags_return_} -eq ${FLAGS_TRUE} \
|
|
||||||
-a "${_flags_short_}" != "${__FLAGS_NULL}" ]
|
|
||||||
then
|
|
||||||
@@ -266,9 +141,6 @@ _flags_define()
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # handle default value. note, on several occasions the 'if' portion of an
|
|
||||||
- # if/then/else contains just a ':' which does nothing. a binary reversal via
|
|
||||||
- # '!' is not done because it does not work on all shells.
|
|
||||||
if [ ${_flags_return_} -eq ${FLAGS_TRUE} ]; then
|
|
||||||
case ${_flags_type_} in
|
|
||||||
${__FLAGS_TYPE_BOOLEAN})
|
|
||||||
@@ -301,7 +173,7 @@ _flags_define()
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
- ${__FLAGS_TYPE_STRING}) ;; # everything in shell is a valid string
|
|
||||||
+ ${__FLAGS_TYPE_STRING}) ;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
flags_error="unrecognized flag type '${_flags_type_}'"
|
|
||||||
@@ -311,7 +183,6 @@ _flags_define()
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${_flags_return_} -eq ${FLAGS_TRUE} ]; then
|
|
||||||
- # store flag information
|
|
||||||
eval "FLAGS_${_flags_name_}='${_flags_default_}'"
|
|
||||||
eval "__flags_${_flags_name_}_${__FLAGS_INFO_TYPE}=${_flags_type_}"
|
|
||||||
eval "__flags_${_flags_name_}_${__FLAGS_INFO_DEFAULT}=\
|
|
||||||
@@ -319,7 +190,6 @@ _flags_define()
|
|
||||||
eval "__flags_${_flags_name_}_${__FLAGS_INFO_HELP}=\"${_flags_help_}\""
|
|
||||||
eval "__flags_${_flags_name_}_${__FLAGS_INFO_SHORT}='${_flags_short_}'"
|
|
||||||
|
|
||||||
- # append flag name(s) to list of names
|
|
||||||
__flags_longNames="${__flags_longNames}${_flags_name_} "
|
|
||||||
__flags_shortNames="${__flags_shortNames}${_flags_short_} "
|
|
||||||
[ ${_flags_type_} -eq ${__FLAGS_TYPE_BOOLEAN} ] && \
|
|
||||||
@@ -333,17 +203,6 @@ _flags_define()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Return valid getopt options using currently defined list of long options.
|
|
||||||
-#
|
|
||||||
-# This function builds a proper getopt option string for short (and long)
|
|
||||||
-# options, using the current list of long options for reference.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# _flags_optStr: integer: option string type (__FLAGS_OPTSTR_*)
|
|
||||||
-# Output:
|
|
||||||
-# string: generated option string for getopt
|
|
||||||
-# Returns:
|
|
||||||
-# boolean: success of operation (always returns True)
|
|
||||||
_flags_genOptStr()
|
|
||||||
{
|
|
||||||
_flags_optStrType_=$1
|
|
||||||
@@ -358,7 +217,6 @@ _flags_genOptStr()
|
|
||||||
${_flags_flag_} ${__FLAGS_INFO_SHORT}`
|
|
||||||
if [ "${_flags_shortName_}" != "${__FLAGS_NULL}" ]; then
|
|
||||||
_flags_opts_="${_flags_opts_}${_flags_shortName_}"
|
|
||||||
- # getopt needs a trailing ':' to indicate a required argument
|
|
||||||
[ ${_flags_type_} -ne ${__FLAGS_TYPE_BOOLEAN} ] && \
|
|
||||||
_flags_opts_="${_flags_opts_}:"
|
|
||||||
fi
|
|
||||||
@@ -366,7 +224,6 @@ _flags_genOptStr()
|
|
||||||
|
|
||||||
${__FLAGS_OPTSTR_LONG})
|
|
||||||
_flags_opts_="${_flags_opts_:+${_flags_opts_},}${_flags_flag_}"
|
|
||||||
- # getopt needs a trailing ':' to indicate a required argument
|
|
||||||
[ ${_flags_type_} -ne ${__FLAGS_TYPE_BOOLEAN} ] && \
|
|
||||||
_flags_opts_="${_flags_opts_}:"
|
|
||||||
;;
|
|
||||||
@@ -379,15 +236,6 @@ _flags_genOptStr()
|
|
||||||
return ${FLAGS_TRUE}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Returns flag details based on a flag name and flag info.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# string: long flag name
|
|
||||||
-# string: flag info (see the _flags_define function for valid info types)
|
|
||||||
-# Output:
|
|
||||||
-# string: value of dereferenced flag variable
|
|
||||||
-# Returns:
|
|
||||||
-# integer: one of FLAGS_{TRUE|FALSE|ERROR}
|
|
||||||
_flags_getFlagInfo()
|
|
||||||
{
|
|
||||||
_flags_name_=$1
|
|
||||||
@@ -399,13 +247,6 @@ _flags_getFlagInfo()
|
|
||||||
if [ -n "${_flags_value_}" ]; then
|
|
||||||
flags_return=${FLAGS_TRUE}
|
|
||||||
else
|
|
||||||
- # see if the _flags_name_ variable is a string as strings can be empty...
|
|
||||||
- # note: the DRY principle would say to have this function call itself for
|
|
||||||
- # the next three lines, but doing so results in an infinite loop as an
|
|
||||||
- # invalid _flags_name_ will also not have the associated _type variable.
|
|
||||||
- # Because it doesn't (it will evaluate to an empty string) the logic will
|
|
||||||
- # try to find the _type variable of the _type variable, and so on. Not so
|
|
||||||
- # good ;-)
|
|
||||||
_flags_typeVar_="__flags_${_flags_name_}_${__FLAGS_INFO_TYPE}"
|
|
||||||
_flags_strToEval_="_flags_type_=\"\${${_flags_typeVar_}:-}\""
|
|
||||||
eval "${_flags_strToEval_}"
|
|
||||||
@@ -424,15 +265,6 @@ _flags_getFlagInfo()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# check for presense of item in a list. passed a string (e.g. 'abc'), this
|
|
||||||
-# function will determine if the string is present in the list of strings (e.g.
|
|
||||||
-# ' foo bar abc ').
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# _flags__str: string: string to search for in a list of strings
|
|
||||||
-# unnamed: list: list of strings
|
|
||||||
-# Returns:
|
|
||||||
-# boolean: true if item is in the list
|
|
||||||
_flags_itemInList()
|
|
||||||
{
|
|
||||||
_flags_str_=$1
|
|
||||||
@@ -449,34 +281,22 @@ _flags_itemInList()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Returns the width of the current screen.
|
|
||||||
-#
|
|
||||||
-# Output:
|
|
||||||
-# integer: width in columns of the current screen.
|
|
||||||
_flags_columns()
|
|
||||||
{
|
|
||||||
if [ -z "${__flags_columns}" ]; then
|
|
||||||
- # determine the value and store it
|
|
||||||
if eval stty size >/dev/null 2>&1; then
|
|
||||||
- # stty size worked :-)
|
|
||||||
set -- `stty size`
|
|
||||||
__flags_columns=$2
|
|
||||||
elif eval tput cols >/dev/null 2>&1; then
|
|
||||||
set -- `tput cols`
|
|
||||||
__flags_columns=$1
|
|
||||||
else
|
|
||||||
- __flags_columns=80 # default terminal width
|
|
||||||
+ __flags_columns=80
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo ${__flags_columns}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Validate a boolean.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# _flags__bool: boolean: value to validate
|
|
||||||
-# Returns:
|
|
||||||
-# bool: true if the value is a valid boolean
|
|
||||||
_flags_validateBoolean()
|
|
||||||
{
|
|
||||||
_flags_bool_=$1
|
|
||||||
@@ -492,12 +312,6 @@ _flags_validateBoolean()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Validate a float.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# _flags__float: float: value to validate
|
|
||||||
-# Returns:
|
|
||||||
-# bool: true if the value is a valid float
|
|
||||||
_flags_validateFloat()
|
|
||||||
{
|
|
||||||
_flags_float_=$1
|
|
||||||
@@ -507,10 +321,10 @@ _flags_validateFloat()
|
|
||||||
else
|
|
||||||
flags_return=${FLAGS_TRUE}
|
|
||||||
case ${_flags_float_} in
|
|
||||||
- -*) # negative floats
|
|
||||||
+ -*)
|
|
||||||
_flags_test_=`expr "${_flags_float_}" : '\(-[0-9][0-9]*\.[0-9][0-9]*\)'`
|
|
||||||
;;
|
|
||||||
- *) # positive floats
|
|
||||||
+ *)
|
|
||||||
_flags_test_=`expr "${_flags_float_}" : '\([0-9][0-9]*\.[0-9][0-9]*\)'`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -521,22 +335,16 @@ _flags_validateFloat()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Validate an integer.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# _flags__integer: interger: value to validate
|
|
||||||
-# Returns:
|
|
||||||
-# bool: true if the value is a valid integer
|
|
||||||
_flags_validateInteger()
|
|
||||||
{
|
|
||||||
_flags_int_=$1
|
|
||||||
|
|
||||||
flags_return=${FLAGS_TRUE}
|
|
||||||
case ${_flags_int_} in
|
|
||||||
- -*) # negative ints
|
|
||||||
+ -*)
|
|
||||||
_flags_test_=`expr "${_flags_int_}" : '\(-[0-9][0-9]*\)'`
|
|
||||||
;;
|
|
||||||
- *) # positive ints
|
|
||||||
+ *)
|
|
||||||
_flags_test_=`expr "${_flags_int_}" : '\([0-9][0-9]*\)'`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -546,23 +354,12 @@ _flags_validateInteger()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Parse command-line options using the standard getopt.
|
|
||||||
-#
|
|
||||||
-# Note: the flag options are passed around in the global __flags_opts so that
|
|
||||||
-# the formatting is not lost due to shell parsing and such.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# @: varies: command-line options to parse
|
|
||||||
-# Returns:
|
|
||||||
-# integer: a FLAGS success condition
|
|
||||||
_flags_getoptStandard()
|
|
||||||
{
|
|
||||||
flags_return=${FLAGS_TRUE}
|
|
||||||
_flags_shortOpts_=`_flags_genOptStr ${__FLAGS_OPTSTR_SHORT}`
|
|
||||||
|
|
||||||
- # check for spaces in passed options
|
|
||||||
for _flags_opt_ in "$@"; do
|
|
||||||
- # note: the silliness with the x's is purely for ksh93 on Ubuntu 6.06
|
|
||||||
_flags_match_=`echo "x${_flags_opt_}x" |sed 's/ //g'`
|
|
||||||
if [ "${_flags_match_}" != "x${_flags_opt_}x" ]; then
|
|
||||||
flags_error='the available getopt does not support spaces in options'
|
|
||||||
@@ -585,15 +382,6 @@ _flags_getoptStandard()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Parse command-line options using the enhanced getopt.
|
|
||||||
-#
|
|
||||||
-# Note: the flag options are passed around in the global __flags_opts so that
|
|
||||||
-# the formatting is not lost due to shell parsing and such.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# @: varies: command-line options to parse
|
|
||||||
-# Returns:
|
|
||||||
-# integer: a FLAGS success condition
|
|
||||||
_flags_getoptEnhanced()
|
|
||||||
{
|
|
||||||
flags_return=${FLAGS_TRUE}
|
|
||||||
@@ -617,17 +405,6 @@ _flags_getoptEnhanced()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Dynamically parse a getopt result and set appropriate variables.
|
|
||||||
-#
|
|
||||||
-# This function does the actual conversion of getopt output and runs it through
|
|
||||||
-# the standard case structure for parsing. The case structure is actually quite
|
|
||||||
-# dynamic to support any number of flags.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# argc: int: original command-line argument count
|
|
||||||
-# @: varies: output from getopt parsing
|
|
||||||
-# Returns:
|
|
||||||
-# integer: a FLAGS success condition
|
|
||||||
_flags_parseGetopt()
|
|
||||||
{
|
|
||||||
_flags_argc_=$1
|
|
||||||
@@ -638,35 +415,26 @@ _flags_parseGetopt()
|
|
||||||
if [ ${__FLAGS_GETOPT_VERS} -ne ${__FLAGS_GETOPT_VERS_ENH} ]; then
|
|
||||||
set -- $@
|
|
||||||
else
|
|
||||||
- # note the quotes around the `$@' -- they are essential!
|
|
||||||
eval set -- "$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # provide user with number of arguments to shift by later
|
|
||||||
- # NOTE: the FLAGS_ARGC variable is obsolete as of 1.0.3 because it does not
|
|
||||||
- # properly give user access to non-flag arguments mixed in between flag
|
|
||||||
- # arguments. Its usage was replaced by FLAGS_ARGV, and it is being kept only
|
|
||||||
- # for backwards compatibility reasons.
|
|
||||||
FLAGS_ARGC=`expr $# - 1 - ${_flags_argc_}`
|
|
||||||
|
|
||||||
- # handle options. note options with values must do an additional shift
|
|
||||||
while true; do
|
|
||||||
_flags_opt_=$1
|
|
||||||
_flags_arg_=${2:-}
|
|
||||||
_flags_type_=${__FLAGS_TYPE_NONE}
|
|
||||||
_flags_name_=''
|
|
||||||
|
|
||||||
- # determine long flag name
|
|
||||||
case "${_flags_opt_}" in
|
|
||||||
- --) shift; break ;; # discontinue option parsing
|
|
||||||
+ --) shift; break ;;
|
|
||||||
|
|
||||||
- --*) # long option
|
|
||||||
+ --*)
|
|
||||||
_flags_opt_=`expr "${_flags_opt_}" : '--\(.*\)'`
|
|
||||||
_flags_len_=${__FLAGS_LEN_LONG}
|
|
||||||
if _flags_itemInList "${_flags_opt_}" ${__flags_longNames}; then
|
|
||||||
_flags_name_=${_flags_opt_}
|
|
||||||
else
|
|
||||||
- # check for negated long boolean version
|
|
||||||
if _flags_itemInList "${_flags_opt_}" ${__flags_boolNames}; then
|
|
||||||
_flags_name_=`expr "${_flags_opt_}" : 'no\(.*\)'`
|
|
||||||
_flags_type_=${__FLAGS_TYPE_BOOLEAN}
|
|
||||||
@@ -675,12 +443,10 @@ _flags_parseGetopt()
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
- -*) # short option
|
|
||||||
+ -*)
|
|
||||||
_flags_opt_=`expr "${_flags_opt_}" : '-\(.*\)'`
|
|
||||||
_flags_len_=${__FLAGS_LEN_SHORT}
|
|
||||||
if _flags_itemInList "${_flags_opt_}" ${__flags_shortNames}; then
|
|
||||||
- # yes. match short name to long name. note purposeful off-by-one
|
|
||||||
- # (too high) with awk calculations.
|
|
||||||
_flags_pos_=`echo "${__flags_shortNames}" \
|
|
||||||
|awk 'BEGIN{RS=" ";rn=0}$0==e{rn=NR}END{print rn}' \
|
|
||||||
e=${_flags_opt_}`
|
|
||||||
@@ -690,14 +456,12 @@ _flags_parseGetopt()
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
- # die if the flag was unrecognized
|
|
||||||
if [ -z "${_flags_name_}" ]; then
|
|
||||||
flags_error="unrecognized option (${_flags_opt_})"
|
|
||||||
flags_return=${FLAGS_ERROR}
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # set new flag value
|
|
||||||
[ ${_flags_type_} -eq ${__FLAGS_TYPE_NONE} ] && \
|
|
||||||
_flags_type_=`_flags_getFlagInfo \
|
|
||||||
"${_flags_name_}" ${__FLAGS_INFO_TYPE}`
|
|
||||||
@@ -746,7 +510,6 @@ _flags_parseGetopt()
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
- # handle special case help flag
|
|
||||||
if [ "${_flags_name_}" = 'help' ]; then
|
|
||||||
if [ ${FLAGS_help} -eq ${FLAGS_TRUE} ]; then
|
|
||||||
flags_help
|
|
||||||
@@ -756,12 +519,10 @@ _flags_parseGetopt()
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # shift the option and non-boolean arguements out.
|
|
||||||
shift
|
|
||||||
[ ${_flags_type_} != ${__FLAGS_TYPE_BOOLEAN} ] && shift
|
|
||||||
done
|
|
||||||
|
|
||||||
- # give user back non-flag arguments
|
|
||||||
FLAGS_ARGV=''
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
FLAGS_ARGV="${FLAGS_ARGV:+${FLAGS_ARGV} }'$1'"
|
|
||||||
@@ -773,43 +534,18 @@ _flags_parseGetopt()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-#------------------------------------------------------------------------------
|
|
||||||
-# public functions
|
|
||||||
-#
|
|
||||||
-
|
|
||||||
-# A basic boolean flag. Boolean flags do not take any arguments, and their
|
|
||||||
-# value is either 1 (false) or 0 (true). For long flags, the false value is
|
|
||||||
-# specified on the command line by prepending the word 'no'. With short flags,
|
|
||||||
-# the presense of the flag toggles the current value between true and false.
|
|
||||||
-# Specifying a short boolean flag twice on the command results in returning the
|
|
||||||
-# value back to the default value.
|
|
||||||
-#
|
|
||||||
-# A default value is required for boolean flags.
|
|
||||||
-#
|
|
||||||
-# For example, lets say a Boolean flag was created whose long name was 'update'
|
|
||||||
-# and whose short name was 'x', and the default value was 'false'. This flag
|
|
||||||
-# could be explicitly set to 'true' with '--update' or by '-x', and it could be
|
|
||||||
-# explicitly set to 'false' with '--noupdate'.
|
|
||||||
+
|
|
||||||
DEFINE_boolean() { _flags_define ${__FLAGS_TYPE_BOOLEAN} "$@"; }
|
|
||||||
|
|
||||||
-# Other basic flags.
|
|
||||||
DEFINE_float() { _flags_define ${__FLAGS_TYPE_FLOAT} "$@"; }
|
|
||||||
DEFINE_integer() { _flags_define ${__FLAGS_TYPE_INTEGER} "$@"; }
|
|
||||||
DEFINE_string() { _flags_define ${__FLAGS_TYPE_STRING} "$@"; }
|
|
||||||
|
|
||||||
-# Parse the flags.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# unnamed: list: command-line flags to parse
|
|
||||||
-# Returns:
|
|
||||||
-# integer: success of operation, or error
|
|
||||||
FLAGS()
|
|
||||||
{
|
|
||||||
- # define a standard 'help' flag if one isn't already defined
|
|
||||||
[ -z "${__flags_help_type:-}" ] && \
|
|
||||||
DEFINE_boolean 'help' false 'show this help' 'h'
|
|
||||||
|
|
||||||
- # parse options
|
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
if [ ${__FLAGS_GETOPT_VERS} -ne ${__FLAGS_GETOPT_VERS_ENH} ]; then
|
|
||||||
_flags_getoptStandard "$@"
|
|
||||||
@@ -818,7 +554,6 @@ FLAGS()
|
|
||||||
fi
|
|
||||||
flags_return=$?
|
|
||||||
else
|
|
||||||
- # nothing passed; won't bother running getopt
|
|
||||||
__flags_opts='--'
|
|
||||||
flags_return=${FLAGS_TRUE}
|
|
||||||
fi
|
|
||||||
@@ -832,23 +567,11 @@ FLAGS()
|
|
||||||
return ${flags_return}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# This is a helper function for determining the `getopt` version for platforms
|
|
||||||
-# where the detection isn't working. It simply outputs debug information that
|
|
||||||
-# can be included in a bug report.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# none
|
|
||||||
-# Output:
|
|
||||||
-# debug info that can be included in a bug report
|
|
||||||
-# Returns:
|
|
||||||
-# nothing
|
|
||||||
flags_getoptInfo()
|
|
||||||
{
|
|
||||||
- # platform info
|
|
||||||
_flags_debug "uname -a: `uname -a`"
|
|
||||||
_flags_debug "PATH: ${PATH}"
|
|
||||||
|
|
||||||
- # shell info
|
|
||||||
if [ -n "${BASH_VERSION:-}" ]; then
|
|
||||||
_flags_debug 'shell: bash'
|
|
||||||
_flags_debug "BASH_VERSION: ${BASH_VERSION}"
|
|
||||||
@@ -857,7 +580,6 @@ flags_getoptInfo()
|
|
||||||
_flags_debug "ZSH_VERSION: ${ZSH_VERSION}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- # getopt info
|
|
||||||
getopt >/dev/null
|
|
||||||
_flags_getoptReturn=$?
|
|
||||||
_flags_debug "getopt return: ${_flags_getoptReturn}"
|
|
||||||
@@ -866,39 +588,16 @@ flags_getoptInfo()
|
|
||||||
unset _flags_getoptReturn
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Returns whether the detected getopt version is the enhanced version.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# none
|
|
||||||
-# Output:
|
|
||||||
-# none
|
|
||||||
-# Returns:
|
|
||||||
-# bool: true if getopt is the enhanced version
|
|
||||||
flags_getoptIsEnh()
|
|
||||||
{
|
|
||||||
test ${__FLAGS_GETOPT_VERS} -eq ${__FLAGS_GETOPT_VERS_ENH}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Returns whether the detected getopt version is the standard version.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# none
|
|
||||||
-# Returns:
|
|
||||||
-# bool: true if getopt is the standard version
|
|
||||||
flags_getoptIsStd()
|
|
||||||
{
|
|
||||||
test ${__FLAGS_GETOPT_VERS} -eq ${__FLAGS_GETOPT_VERS_STD}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# This is effectively a 'usage()' function. It prints usage information and
|
|
||||||
-# exits the program with ${FLAGS_FALSE} if it is ever found in the command line
|
|
||||||
-# arguments. Note this function can be overridden so other apps can define
|
|
||||||
-# their own --help flag, replacing this one, if they want.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# none
|
|
||||||
-# Returns:
|
|
||||||
-# integer: success of operation (always returns true)
|
|
||||||
flags_help()
|
|
||||||
{
|
|
||||||
if [ -n "${FLAGS_HELP:-}" ]; then
|
|
||||||
@@ -953,19 +652,14 @@ flags_help()
|
|
||||||
echo "${flags_helpStr_}" >&2
|
|
||||||
else
|
|
||||||
echo " ${flags_flagStr_} ${flags_help_}" >&2
|
|
||||||
- # note: the silliness with the x's is purely for ksh93 on Ubuntu 6.06
|
|
||||||
- # because it doesn't like empty strings when used in this manner.
|
|
||||||
flags_emptyStr_="`echo \"x${flags_flagStr_}x\" \
|
|
||||||
|awk '{printf "%"length($0)-2"s", ""}'`"
|
|
||||||
flags_helpStr_=" ${flags_emptyStr_} ${flags_defaultStr_}"
|
|
||||||
flags_helpStrLen_=`expr "${flags_helpStr_}" : '.*'`
|
|
||||||
if [ ${__FLAGS_GETOPT_VERS} -eq ${__FLAGS_GETOPT_VERS_STD} \
|
|
||||||
-o ${flags_helpStrLen_} -lt ${flags_columns_} ]; then
|
|
||||||
- # indented to match help string
|
|
||||||
echo "${flags_helpStr_}" >&2
|
|
||||||
else
|
|
||||||
- # indented four from left to allow for longer defaults as long flag
|
|
||||||
- # names might be used too, making things too long
|
|
||||||
echo " ${flags_defaultStr_}" >&2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
@@ -978,12 +672,6 @@ flags_help()
|
|
||||||
return ${FLAGS_TRUE}
|
|
||||||
}
|
|
||||||
|
|
||||||
-# Reset shflags back to an uninitialized state.
|
|
||||||
-#
|
|
||||||
-# Args:
|
|
||||||
-# none
|
|
||||||
-# Returns:
|
|
||||||
-# nothing
|
|
||||||
flags_reset()
|
|
||||||
{
|
|
||||||
for flags_name_ in ${__flags_longNames}; do
|
|
||||||
@@ -1000,7 +688,6 @@ flags_reset()
|
|
||||||
eval ${flags_strToEval_}
|
|
||||||
done
|
|
||||||
|
|
||||||
- # reset internal variables
|
|
||||||
__flags_boolNames=' '
|
|
||||||
__flags_longNames=' '
|
|
||||||
__flags_shortNames=' '
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
if PACKAGE_stunc
|
|
||||||
|
|
||||||
choice
|
|
||||||
prompt "Select SSL utility"
|
|
||||||
default STUNC_USE_WOLFSSL
|
|
||||||
|
|
||||||
config STUNC_USE_WOLFSSL
|
|
||||||
bool "Use WolfSSL for ssl utilities"
|
|
||||||
select CONFIG_PACKAGE_libwolfssl
|
|
||||||
|
|
||||||
config STUNC_USE_OPENSSL
|
|
||||||
bool "Use OpenSSL for ssl utilities"
|
|
||||||
select CONFIG_PACKAGE_libopenssl
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
endif
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2020 iopsys Software Solutions AB
|
# Copyright (C) 2020-2022 IOPSYS Software Solutions AB
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
@@ -8,49 +8,77 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=stunc
|
PKG_NAME:=stunc
|
||||||
PKG_VERSION:=1.1.3
|
PKG_RELEASE:=1
|
||||||
|
PKG_VERSION:=1.1.11
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=c5de804fb976d17fd9a7ed7967d760d0c7e4c224
|
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/stunc.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/stunc.git
|
||||||
|
PKG_SOURCE_VERSION:=5afef8d2040fa31a73e6320c8a65b891a88518de
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
PKG_BUILD_DEPENDS:=bbf
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/$(PKG_NAME)
|
define Package/stunc/default
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=BBF STUN Client
|
TITLE:=BBF STUN Client
|
||||||
DEPENDS:=+libubus +libuci +libubox +libjson-c +libwolfssl +libblobmsg-json +libbbf_api +libopenssl
|
DEPENDS:=+libubus +libuci +libubox +libjson-c +libblobmsg-json
|
||||||
MENU := 1
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
define Package/stunc-mbedtls
|
||||||
BBF STUN Client
|
$(Package/stunc/default)
|
||||||
|
TITLE += (mbedtls)
|
||||||
|
DEPENDS += +PACKAGE_stunc-mbedtls:libmbedtls
|
||||||
|
VARIANT:=mbedtls
|
||||||
|
DEFAULT_VARIANT:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/config
|
define Package/stunc-openssl
|
||||||
source "$(SOURCE)/Config.in"
|
$(Package/stunc/default)
|
||||||
|
TITLE += (openssl)
|
||||||
|
DEPENDS += +PACKAGE_stunc-openssl:libopenssl
|
||||||
|
CONFLICTS := stunc-mbedtls
|
||||||
|
VARIANT:=openssl
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/stunc-wolfssl
|
||||||
|
$(Package/stunc/default)
|
||||||
|
TITLE += (wolfssl)
|
||||||
|
DEPENDS += +PACKAGE_stunc-wolfssl:libwolfssl
|
||||||
|
CONFLICTS := stunc-mbedtls stunc-openssl
|
||||||
|
VARIANT:=wolfssl
|
||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-D_GNU_SOURCE \
|
-D_GNU_SOURCE \
|
||||||
-Wall -Werror
|
-Wall -Werror
|
||||||
|
|
||||||
ifeq ($(CONFIG_STUNC_USE_WOLFSSL), y)
|
ifeq ($(BUILD_VARIANT),wolfssl)
|
||||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
|
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/wolfssl
|
||||||
TARGET_LDFLAGS += -lwolfssl
|
MAKE_FLAGS += \
|
||||||
|
USE_WOLFSSL="yes"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BUILD_VARIANT),mbedtls)
|
||||||
|
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/mbedtls
|
||||||
|
MAKE_FLAGS += \
|
||||||
|
USE_MBEDTLS="yes"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BUILD_VARIANT),openssl)
|
||||||
|
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/
|
||||||
|
MAKE_FLAGS += \
|
||||||
|
USE_OPENSSL="yes"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(LOCAL_DEV),1)
|
ifeq ($(LOCAL_DEV),1)
|
||||||
@@ -59,7 +87,7 @@ define Build/Prepare
|
|||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/install
|
define Package/stunc/default/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_DIR) $(1)/etc/config
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
@@ -70,4 +98,10 @@ define Package/$(PKG_NAME)/install
|
|||||||
$(INSTALL_DATA) ./files/etc/config/stunc $(1)/etc/config/stunc
|
$(INSTALL_DATA) ./files/etc/config/stunc $(1)/etc/config/stunc
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
Package/stunc-openssl/install = $(Package/stunc/default/install)
|
||||||
|
Package/stunc-wolfssl/install = $(Package/stunc/default/install)
|
||||||
|
Package/stunc-mbedtls/install = $(Package/stunc/default/install)
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,stunc-openssl))
|
||||||
|
$(eval $(call BuildPackage,stunc-wolfssl))
|
||||||
|
$(eval $(call BuildPackage,stunc-mbedtls))
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ config stunc 'stunc'
|
|||||||
option min_keepalive '30'
|
option min_keepalive '30'
|
||||||
option max_keepalive '3600'
|
option max_keepalive '3600'
|
||||||
# option client_port 7547
|
# option client_port 7547
|
||||||
option log_level '0'
|
option log_level '1'
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=sulu
|
PKG_NAME:=sulu
|
||||||
PKG_VERSION:=1.0.0
|
PKG_VERSION:=1.0.12
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu.git
|
||||||
PKG_SOURCE_VERSION:=ab01473ad17974714f7cc91fcb345746fb7ddd6d
|
PKG_SOURCE_VERSION:=fc82a32ab3cdcb18dc3aa7b907c62d8bed29b4ff
|
||||||
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
|
|||||||
@@ -6,18 +6,22 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=swmodd
|
PKG_NAME:=swmodd
|
||||||
PKG_VERSION:=2.1.2
|
PKG_VERSION:=2.1.5
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=e484557ea7ede6d8ff439081deebd763d4952851
|
PKG_SOURCE_VERSION:=2f953ea76b5779a73a540777dfb450982802e4f8
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/swmodd.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/swmodd.git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
PKG_BUILD_DEPENDS:=bbf
|
||||||
|
|
||||||
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
@@ -26,7 +30,7 @@ define Package/swmodd
|
|||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:= Software Modules Daemon
|
TITLE:= Software Modules Daemon
|
||||||
DEPENDS:=+libuci +libubox +ubus +libuuid +libbbf_api +opkg +libcurl \
|
DEPENDS:=+libuci +libubox +ubus +libuuid +opkg +libcurl \
|
||||||
+PACKAGE_liblxc:liblxc +PACKAGE_liblxc:cgroupfs-mount \
|
+PACKAGE_liblxc:liblxc +PACKAGE_liblxc:cgroupfs-mount \
|
||||||
+@BUSYBOX_CONFIG_BUSYBOX +@BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT
|
+@BUSYBOX_CONFIG_BUSYBOX +@BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
|
|
||||||
START=94
|
START=99
|
||||||
STOP=10
|
STOP=01
|
||||||
|
|
||||||
USE_PROCD=1
|
USE_PROCD=1
|
||||||
PROG=/usr/sbin/swmodd
|
PROG=/usr/sbin/swmodd
|
||||||
|
|||||||
@@ -1,28 +1,25 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2020 iopsys Software Solutions AB
|
# Copyright (C) 2020-2022 iopsys Software Solutions AB
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=twamp
|
PKG_NAME:=twamp
|
||||||
PKG_VERSION:=1.1.1
|
PKG_VERSION:=1.2.0
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/twamp.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/twamp-light.git
|
||||||
PKG_SOURCE_VERSION:=a0f7355afea41dbafd443d119cb394e038e70dc6
|
PKG_SOURCE_VERSION:=4dfc8609fb0cefaaf9e86b559b1e10488117cf07
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
PKG_BUILD_DEPENDS:=bbf
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
@@ -30,12 +27,12 @@ define Package/$(PKG_NAME)
|
|||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=BBF TWAMP/TWAMP Light feature
|
TITLE:=TWAMP Light Client(TR-390)
|
||||||
DEPENDS:=+libuci +libbbf_api +ubox +libubus
|
DEPENDS:=+libuci +ubox +libubus
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
define Package/$(PKG_NAME)/description
|
||||||
BBF TWAMP/TWAMP Light feature
|
TWAMP Client for Performance Measurement from IP Edge to Customer Equipment using TWAMP Light Protocol
|
||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
|
|
||||||
config twamp 'twamp'
|
config twamp 'twamp'
|
||||||
option enable '1'
|
option enable '0'
|
||||||
option twamp_light '1'
|
#Log levels: Critical=0, Error=1, Warning=2, Notice=3, Info=4, Debug=5
|
||||||
#Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4
|
option log_level '4'
|
||||||
option log_level '3'
|
|
||||||
|
|
||||||
config twamp_reflector 'reflector_1'
|
config twamp_reflector 'reflector_1'
|
||||||
option enable '0'
|
option enable '0'
|
||||||
option interface 'wan'
|
option interface 'wan'
|
||||||
option port '862'
|
option port '862'
|
||||||
option max_ttl '1'
|
option max_ttl '1'
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ function configure_firewall()
|
|||||||
{
|
{
|
||||||
local enable port interface
|
local enable port interface
|
||||||
|
|
||||||
config_get enable ${1} enable "0"
|
config_get enable ${1} enable "1"
|
||||||
config_get port ${1} port
|
config_get port ${1} port
|
||||||
config_get interface ${1} interface
|
config_get interface ${1} interface
|
||||||
if [ "$enable" -eq 0 -o -z "${port}" -o -z "${interface}" ]; then
|
if [ "$enable" -eq 0 -o -z "${port}" -o -z "${interface}" ]; then
|
||||||
@@ -27,5 +27,21 @@ function configure_firewall()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function delete_rule()
|
||||||
|
{
|
||||||
|
while iptables -w 1 -L zone_${1}_input --line-numbers | grep "TWAMP reflector port" > /dev/null; do
|
||||||
|
iptables -w 1 -D zone_${1}_input $(iptables -w 1 -L zone_${1}_input --line-numbers | grep "TWAMP reflector port" | head -1|awk '{print $1}');
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Loop through all interfaces and delete the twamp reflector rule from interface's input chain
|
||||||
|
config_load network
|
||||||
|
config_foreach delete_rule interface
|
||||||
|
|
||||||
config_load twamp
|
config_load twamp
|
||||||
|
config_get twamp_enable twamp enable "0"
|
||||||
|
if [ "${twamp_enable}" -eq "0" ]; then
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
|
||||||
config_foreach configure_firewall twamp_reflector
|
config_foreach configure_firewall twamp_reflector
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ start_service() {
|
|||||||
reload_service() {
|
reload_service() {
|
||||||
stop
|
stop
|
||||||
start
|
start
|
||||||
|
[ -f /etc/firewall.twamp ] && {
|
||||||
|
sh /etc/firewall.twamp
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
|
|||||||
@@ -7,42 +7,63 @@
|
|||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=udpechoserver
|
PKG_NAME:=udpecho
|
||||||
PKG_VERSION:=1.0.3
|
PKG_VERSION:=2.0.1
|
||||||
|
|
||||||
PKG_SOURCE_VERSION:=4e80bbec15b284080798b5ffbe8655febaa239aa
|
LOCAL_DEV:=0
|
||||||
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/udpechoserver.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/udpecho.git
|
||||||
|
PKG_SOURCE_VERSION:=19a555c2d460db6bdfcfa53742011fbb6a4ca6af
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
|
endif
|
||||||
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
PKG_BUILD_DEPENDS:=bbf
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
MAKE_PATH:=src
|
MAKE_PATH:=src
|
||||||
|
|
||||||
define Package/$(PKG_NAME)
|
define Package/$(PKG_NAME)-server
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=BBF UDP Echo Server
|
TITLE:=BBF UDP Echo Server
|
||||||
DEPENDS:=+libuci +libbbf_api
|
DEPENDS:=+libuci
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
define Package/$(PKG_NAME)-client
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
SUBMENU:=TRx69
|
||||||
|
TITLE:=BBF UDP Echo Client
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/$(PKG_NAME)-server/description
|
||||||
BBF UDP Echo Server
|
BBF UDP Echo Server
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/$(PKG_NAME)-client/description
|
||||||
|
BBF UDP Echo Client
|
||||||
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-D_GNU_SOURCE \
|
-D_GNU_SOURCE \
|
||||||
-Wall -Werror
|
-Wall -Werror
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/install
|
ifeq ($(LOCAL_DEV),1)
|
||||||
|
define Build/Prepare
|
||||||
|
$(CP) -rf ~/git/udpecho/* $(PKG_BUILD_DIR)/
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
|
define Package/$(PKG_NAME)-server/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
|
$(INSTALL_DIR) $(1)/usr/lib/bbfdm
|
||||||
$(INSTALL_DIR) $(1)/etc/config
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
@@ -53,4 +74,10 @@ define Package/$(PKG_NAME)/install
|
|||||||
$(INSTALL_BIN) ./files/etc/init.d/udpechoserverd $(1)/etc/init.d/udpechoserverd
|
$(INSTALL_BIN) ./files/etc/init.d/udpechoserverd $(1)/etc/init.d/udpechoserverd
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
define Package/$(PKG_NAME)-client/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/udpechoclientd $(1)/usr/sbin/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,$(PKG_NAME)-server))
|
||||||
|
$(eval $(call BuildPackage,$(PKG_NAME)-client))
|
||||||
61
udpecho/files/etc/init.d/udpechoserverd
Executable file
61
udpecho/files/etc/init.d/udpechoserverd
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
#UDP Echo Server software
|
||||||
|
# Copyright (C) 2020 iopsys Software Solutions AB
|
||||||
|
#Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||||
|
|
||||||
|
START=99
|
||||||
|
STOP=02
|
||||||
|
|
||||||
|
USE_PROCD=1
|
||||||
|
PROG="/usr/sbin/udpechoserverd"
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
local enable_udpechoserver port_udpechoserver address_udpechoserver
|
||||||
|
|
||||||
|
enable_udpechoserver="$(uci -q get udpechoserver.udpechoserver.enable)"
|
||||||
|
port_udpechoserver="$(uci -q get udpechoserver.udpechoserver.server_port)"
|
||||||
|
address_udpechoserver="$(uci -q get udpechoserver.udpechoserver.address)"
|
||||||
|
|
||||||
|
|
||||||
|
if [ "${enable_udpechoserver}" -eq "1" ] && [ "$port_udpechoserver" -ne "0" ]; then
|
||||||
|
if [ -z "$address_udpechoserver" ]; then
|
||||||
|
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
|
||||||
|
ip6tables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
|
||||||
|
elif [[ "$address_udpechoserver" =~ .*:.* ]]; then
|
||||||
|
ip6tables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
|
||||||
|
else
|
||||||
|
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
|
||||||
|
fi
|
||||||
|
|
||||||
|
procd_open_instance
|
||||||
|
procd_set_param command "$PROG"
|
||||||
|
procd_set_param respawn "3" "7" "0"
|
||||||
|
procd_close_instance
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_service() {
|
||||||
|
# Remove the USPechoserver ports created earlier
|
||||||
|
while iptables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" > /dev/null; do
|
||||||
|
iptables -D zone_wan_input $(iptables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" | head -1|awk '{print $1}');
|
||||||
|
done
|
||||||
|
|
||||||
|
while ip6tables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" > /dev/null; do
|
||||||
|
ip6tables -D zone_wan_input $(ip6tables -L zone_wan_input --line-numbers | grep "Open UDPechoserver port" | head -1|awk '{print $1}');
|
||||||
|
done
|
||||||
|
|
||||||
|
plus_enable="$(uci -q -c /var/state get udpechoserver.udpechoserver.plus)"
|
||||||
|
if [ -n "${plus_enable}" ]; then
|
||||||
|
uci -q set udpechoserver.udpechoserver.plus="${plus_enable}"
|
||||||
|
uci commit udpechoserver
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_service() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
service_triggers() {
|
||||||
|
procd_add_reload_trigger udpechoserver
|
||||||
|
}
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
|
||||||
#UDP Echo Server software
|
|
||||||
# Copyright (C) 2020 iopsys Software Solutions AB
|
|
||||||
#Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
|
||||||
|
|
||||||
START=99
|
|
||||||
STOP=10
|
|
||||||
|
|
||||||
USE_PROCD=1
|
|
||||||
PROG="/usr/sbin/udpechoserverd"
|
|
||||||
|
|
||||||
start_service() {
|
|
||||||
local enable_udpechoserver=`uci -q get udpechoserver.udpechoserver.enable`
|
|
||||||
local port_udpechoserver=`uci -q get udpechoserver.udpechoserver.server_port`
|
|
||||||
if [ "$port_udpechoserver" != "0" ]; then
|
|
||||||
if [ "$enable_udpechoserver" = "1" ]; then
|
|
||||||
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j ACCEPT -m comment --comment "Open UDPechoserver port"
|
|
||||||
procd_open_instance
|
|
||||||
procd_set_param command "$PROG"
|
|
||||||
procd_set_param respawn "3" "7" "0"
|
|
||||||
procd_close_instance
|
|
||||||
else
|
|
||||||
iptables -I zone_wan_input -p udp --dport "$port_udpechoserver" -j REJECT -m comment --comment "Close UDPechoserver port"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
boot() {
|
|
||||||
start
|
|
||||||
}
|
|
||||||
|
|
||||||
reload_service() {
|
|
||||||
stop
|
|
||||||
start
|
|
||||||
}
|
|
||||||
|
|
||||||
service_triggers() {
|
|
||||||
procd_add_reload_trigger udpechoserver
|
|
||||||
}
|
|
||||||
@@ -6,18 +6,17 @@ include $(TOPDIR)/rules.mk
|
|||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=urlfilter
|
PKG_NAME:=urlfilter
|
||||||
PKG_VERSION:=1.1.1
|
PKG_VERSION:=1.1.3
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=a2fca29140673d058eb0bfb2b3b3c9e61d7f301f
|
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/urlfilter.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/urlfilter.git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE_VERSION:=5a64642ac33e629151788b3ff1de920776bcd2ed
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
@@ -35,7 +34,6 @@ define Package/urlfilter/description
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-I$(STAGING_DIR)/usr/include \
|
|
||||||
-D_GNU_SOURCE
|
-D_GNU_SOURCE
|
||||||
|
|
||||||
ifeq ($(LOCAL_DEV),1)
|
ifeq ($(LOCAL_DEV),1)
|
||||||
|
|||||||
419
urlfilter/files/etc/bbfdm/json/urlfilter.json
Normal file
419
urlfilter/files/etc/bbfdm/json/urlfilter.json
Normal file
@@ -0,0 +1,419 @@
|
|||||||
|
{
|
||||||
|
"json_plugin_version": 1,
|
||||||
|
"Device.{BBF_VENDOR_PREFIX}URLFilter.": {
|
||||||
|
"type": "object",
|
||||||
|
"version": "2.14",
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"access": false,
|
||||||
|
"array": false,
|
||||||
|
"Enable": {
|
||||||
|
"type": "boolean",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"name": "globals"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "enable"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"GlobalBlacklist": {
|
||||||
|
"type": "boolean",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"name": "globals"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "global_blacklist"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"BlacklistURL": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"list": {
|
||||||
|
"datatype": "string"
|
||||||
|
},
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"name": "globals"
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"name": "blacklist_url"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ProfileNumberOfEntries": {
|
||||||
|
"type": "unsignedInt",
|
||||||
|
"read": true,
|
||||||
|
"write": false,
|
||||||
|
"version": "2.14",
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "profile"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "@Count"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Device.{BBF_VENDOR_PREFIX}URLFilter.Profile.{i}.": {
|
||||||
|
"type": "object",
|
||||||
|
"version": "2.14",
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"uniqueKeys": [
|
||||||
|
"Name"
|
||||||
|
],
|
||||||
|
"access": true,
|
||||||
|
"array": true,
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "profile"
|
||||||
|
},
|
||||||
|
"dmmapfile": "dmmap_urlfilter"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Name": {
|
||||||
|
"type": "string",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"version": "2.14",
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"datatype": "string",
|
||||||
|
"range": [
|
||||||
|
{
|
||||||
|
"max": 64
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "profile"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "@Name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"WhitelistURL": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"list": {
|
||||||
|
"datatype": "string"
|
||||||
|
},
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "profile"
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"name": "whitelist_url"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"BlacklistURL": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"list": {
|
||||||
|
"datatype": "string"
|
||||||
|
},
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "profile"
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"name": "blacklist_url"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"FilterNumberOfEntries": {
|
||||||
|
"type": "unsignedInt",
|
||||||
|
"read": true,
|
||||||
|
"write": false,
|
||||||
|
"version": "2.14",
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "@Count"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Device.{BBF_VENDOR_PREFIX}URLFilter.Filter.{i}.": {
|
||||||
|
"type": "object",
|
||||||
|
"version": "2.14",
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"access": true,
|
||||||
|
"array": true,
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"dmmapfile": "dmmap_urlfilter"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Enable": {
|
||||||
|
"type": "boolean",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "enable"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Profile": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "profile"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"linker_obj": "Device.{BBF_VENDOR_PREFIX}URLFilter.Profile."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"MACAddress": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"list": {
|
||||||
|
"datatype": "string"
|
||||||
|
},
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"name": "macaddr"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Day": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"list": {
|
||||||
|
"datatype": "string"
|
||||||
|
},
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"name": "day"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"StartTime": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "start_time"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Duration": {
|
||||||
|
"type": "string",
|
||||||
|
"version": "2.14",
|
||||||
|
"read": true,
|
||||||
|
"write": true,
|
||||||
|
"protocols": [
|
||||||
|
"cwmp",
|
||||||
|
"usp"
|
||||||
|
],
|
||||||
|
"mapping": [
|
||||||
|
{
|
||||||
|
"type": "uci",
|
||||||
|
"uci": {
|
||||||
|
"file": "urlfilter",
|
||||||
|
"section": {
|
||||||
|
"type": "filter"
|
||||||
|
},
|
||||||
|
"option": {
|
||||||
|
"name": "duration"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
42
usp-js/Makefile
Normal file
42
usp-js/Makefile
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2022 IOPSYS
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=usp-js
|
||||||
|
PKG_VERSION:=0.0.1
|
||||||
|
|
||||||
|
PKG_SOURCE_PROTO:=git
|
||||||
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/usp-js.git
|
||||||
|
PKG_SOURCE_VERSION:=7e285eb006414f230a3c17acf1b6f4c31c987447
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
|
PKG_MIRROR_HASH:=skip
|
||||||
|
|
||||||
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/usp-js
|
||||||
|
SECTION:=libs
|
||||||
|
CATEGORY:=Libraries
|
||||||
|
TITLE:=A JS library for USP(TR369) protocol
|
||||||
|
DEPENDS:=+quickjs +quickjs-websocket
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/usp-js/description
|
||||||
|
A JS library to provide USP(TR369) protocol functionality for an usp controller.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
cd $(PKG_BUILD_DIR) && npm install @types/node --save-dev && yarn qjs
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/usp-js/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/usp-js
|
||||||
|
$(CP) $(PKG_BUILD_DIR)/qjs/* $(1)/usr/lib/usp-js/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,usp-js))
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
if PACKAGE_uspd
|
|
||||||
|
|
||||||
menu "Configuration"
|
|
||||||
config USPD_MAX_MSG_LEN
|
|
||||||
int "Maximum message length"
|
|
||||||
default 10485760
|
|
||||||
help
|
|
||||||
Set the maximum data length allowed over ubus in Bytes.
|
|
||||||
|
|
||||||
This value should not be larger than UBUS_MAX_MSGLEN from ubusd.
|
|
||||||
The maximum blob message length allowed is:
|
|
||||||
(configured value - 128) bytes
|
|
||||||
endmenu
|
|
||||||
endif
|
|
||||||
@@ -5,46 +5,72 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=uspd
|
PKG_NAME:=uspd
|
||||||
PKG_VERSION:=2.2.6
|
PKG_VERSION:=2.2.11
|
||||||
|
|
||||||
LOCAL_DEV:=0
|
LOCAL_DEV:=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=ff39170a3e0595a67763a61ac81b2f99b5bf11d7
|
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/uspd.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/uspd.git
|
||||||
|
PKG_SOURCE_VERSION:=1bfd9937ae31c6878aff77fca25f9265d822b57d
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/uspd
|
define Package/uspd/default
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=USP ubus backend
|
TITLE:=Datamodel ubus backend
|
||||||
DEPENDS:=+libubox +ubus +libbbfdm +@BBFDM_ENABLE_JSON_PLUGIN +@BBFDM_ENABLE_DOTSO_PLUGIN \
|
DEPENDS:=+USE_GLIBC:librt +libubox +ubus +@BBFDM_ENABLE_JSON_PLUGIN +@BBFDM_ENABLE_DOTSO_PLUGIN \
|
||||||
+@BBF_TR181 +@BBF_TR104 +@BBF_TR143
|
+@BBF_TR181 +@BBF_TR104 +@BBF_TR143
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/uspd/description
|
define Package/uspd-mbedtls
|
||||||
Ubus based backend for TR-369/USP which can be used by other USP agents
|
$(Package/uspd/default)
|
||||||
running on top of it.
|
TITLE += (mbedtls)
|
||||||
|
DEPENDS += +PACKAGE_uspd-mbedtls:libbbfdm-mbedtls
|
||||||
|
VARIANT:=mbedtls
|
||||||
|
DEFAULT_VARIANT:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/uspd/config
|
define Package/uspd-openssl
|
||||||
source "$(SOURCE)/Config.in"
|
$(Package/uspd/default)
|
||||||
|
TITLE += (openssl)
|
||||||
|
DEPENDS += +PACKAGE_uspd-openssl:libbbfdm-openssl
|
||||||
|
CONFLICTS := uspd-mbedtls
|
||||||
|
VARIANT:=openssl
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/uspd-wolfssl
|
||||||
|
$(Package/uspd/default)
|
||||||
|
TITLE += (wolfssl)
|
||||||
|
DEPENDS += +PACKAGE_uspd-wolfssl:libbbfdm-wolfssl
|
||||||
|
CONFLICTS := uspd-mbedtls uspd-openssl
|
||||||
|
VARIANT:=wolfssl
|
||||||
endef
|
endef
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-I$(STAGING_DIR)/usr/include \
|
|
||||||
-D_GNU_SOURCE \
|
-D_GNU_SOURCE \
|
||||||
-Wall -Werror \
|
-Wall -Werror \
|
||||||
-DUSPD_MAX_MSG_LEN=$(CONFIG_USPD_MAX_MSG_LEN)
|
-DUSPD_MAX_MSG_LEN="10485760"
|
||||||
|
|
||||||
|
TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lrt)
|
||||||
|
ifeq ($(BUILD_VARIANT),openssl)
|
||||||
|
MAKE_FLAGS += USE_OPENSSL="yes"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BUILD_VARIANT),wolfssl)
|
||||||
|
MAKE_FLAGS += USE_WOLFSSL="yes"
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BUILD_VARIANT),mbedtls)
|
||||||
|
MAKE_FLAGS += USE_MBEDTLS="yes"
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(LOCAL_DEV),1)
|
ifeq ($(LOCAL_DEV),1)
|
||||||
define Build/Prepare
|
define Build/Prepare
|
||||||
@@ -52,15 +78,19 @@ define Build/Prepare
|
|||||||
endef
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
define Package/uspd/install
|
define Package/uspd/default/install
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
$(INSTALL_DIR) $(1)/etc/config
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
$(INSTALL_DIR) $(1)/etc/bbfdm/json/
|
|
||||||
$(INSTALL_BIN) ./files/etc/init.d/uspd $(1)/etc/init.d/uspd
|
$(INSTALL_BIN) ./files/etc/init.d/uspd $(1)/etc/init.d/uspd
|
||||||
$(INSTALL_CONF) ./files/etc/config/uspd $(1)/etc/config/uspd
|
$(INSTALL_CONF) ./files/etc/config/uspd $(1)/etc/config/uspd
|
||||||
$(INSTALL_DATA) ./files/etc/bbfdm/json/transferComplete.json $(1)/etc/bbfdm/json/
|
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uspd $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uspd $(1)/usr/sbin/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,uspd))
|
Package/uspd-openssl/install = $(Package/uspd/default/install)
|
||||||
|
Package/uspd-wolfssl/install = $(Package/uspd/default/install)
|
||||||
|
Package/uspd-mbedtls/install = $(Package/uspd/default/install)
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,uspd-openssl))
|
||||||
|
$(eval $(call BuildPackage,uspd-wolfssl))
|
||||||
|
$(eval $(call BuildPackage,uspd-mbedtls))
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=wfa-capi
|
PKG_NAME:=wfa-capi
|
||||||
PKG_VERSION:=1.1.0
|
PKG_VERSION:=1.1.2
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=189c59448ff33fd713a6a218206b18f0c613793a
|
PKG_SOURCE_VERSION:=ce29c2d69d0ca96b61f2de5d1ba107c8d31cb5ef
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfa-capi.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfa-capi.git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
if PACKAGE_wfadatad || PACKAGE_wfadatad-collector
|
menu "Configuration"
|
||||||
menu "configurations"
|
|
||||||
|
|
||||||
config WFA_DELM_STANDALONE
|
|
||||||
bool "Build as standalone daemon instead of a plugin"
|
|
||||||
default y
|
|
||||||
|
|
||||||
config WFA_DELM_MULTIAP_MODE
|
config WFA_DELM_MULTIAP_MODE
|
||||||
bool "Enable Multi-AP mode"
|
bool "Enable Multi-AP mode"
|
||||||
@@ -13,4 +8,3 @@ config WIFI_DELM_DEBUG
|
|||||||
bool "Enable debug logs"
|
bool "Enable debug logs"
|
||||||
default n
|
default n
|
||||||
endmenu
|
endmenu
|
||||||
endif
|
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2021 IOPSYS Software Solutions AB
|
# Copyright (C) 2021-2022 IOPSYS Software Solutions AB
|
||||||
#
|
#
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=wfadatad
|
PKG_NAME:=wfadatad
|
||||||
PKG_VERSION:=6.12.2
|
PKG_VERSION:=2.8.0.1
|
||||||
|
|
||||||
LOCAL_DEV=0
|
LOCAL_DEV=0
|
||||||
ifneq ($(LOCAL_DEV),1)
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=090f5e7c3a379cc46b3473d997a7aaee6b255000
|
PKG_SOURCE_VERSION:=01fd303670eef525e35c5337c4cf15418588273f
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfadatad.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfadatad.git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_LICENSE:=PROPRIETARY IOPSYS
|
|
||||||
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
@@ -25,9 +25,9 @@ include $(INCLUDE_DIR)/package.mk
|
|||||||
define Package/wfadatad
|
define Package/wfadatad
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
TITLE:=WiFi DataElements Agent
|
TITLE:=WiFi DataElements Agent (standalone) daemon
|
||||||
DEPENDS:=+libwifi +libuci +libubox +ubus +libpthread +libnl-genl \
|
DEPENDS:=+libwifi +libuci +libubox +ubus +libpthread +libnl-genl \
|
||||||
+!WFA_DELM_STANDALONE:map-agent +libieee1905 +map-plugin
|
@(!PACKAGE_map-agent) +libieee1905 +map-plugin
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wfadatad/description
|
define Package/wfadatad/description
|
||||||
@@ -37,24 +37,20 @@ endef
|
|||||||
define Package/wfadatad-collector
|
define Package/wfadatad-collector
|
||||||
SECTION:=utils
|
SECTION:=utils
|
||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
TITLE:=WiFi DataElements Collector
|
TITLE:=WiFi DataElements Collector Proxy
|
||||||
DEPENDS:=+libuci +libubox +ubus +libpthread +libnl-genl \
|
DEPENDS:=+libuci +libubox +ubus +libpthread +libnl-genl \
|
||||||
+libieee1905 +map-plugin
|
+libieee1905 +map-plugin
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wfadatad-collector/description
|
define Package/wfadatad-collector/description
|
||||||
It implements WiFi DataElement Collector.
|
It implements the WiFi DataElements Collector Proxy component.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
define Package/wfadatad/config
|
define Package/wfadatad-collector/config
|
||||||
source "$(SOURCE)/Config.in"
|
source "$(SOURCE)/Config.in"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
ifeq ($(CONFIG_WFA_DELM_STANDALONE),y)
|
|
||||||
MAKE_FLAGS += CONFIG_WFA_DELM_STANDALONE=y
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (,$(findstring ALPHA,$(CONFIG_VERSION_CODE)))
|
ifneq (,$(findstring ALPHA,$(CONFIG_VERSION_CODE)))
|
||||||
MAKE_FLAGS += DEBUG=1
|
MAKE_FLAGS += DEBUG=1
|
||||||
endif
|
endif
|
||||||
@@ -85,29 +81,17 @@ MAKE_FLAGS += EXECS="$(EXECS)"
|
|||||||
|
|
||||||
|
|
||||||
define Package/wfadatad/install
|
define Package/wfadatad/install
|
||||||
|
|
||||||
ifeq ($(CONFIG_WFA_DELM_STANDALONE),y)
|
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) ./files/deagent.init $(1)/etc/init.d/deagent
|
$(INSTALL_BIN) ./files/deagent.init $(1)/etc/init.d/deagent
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/agent/deagent $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/agent/deagent $(1)/usr/sbin/
|
||||||
else
|
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/map-plugins
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/src/agent/deagent.so $(1)/usr/lib/map-plugins
|
|
||||||
endif
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/wfadatad-collector/install
|
define Package/wfadatad-collector/install
|
||||||
|
|
||||||
ifeq ($(CONFIG_WFA_DELM_STANDALONE),y)
|
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) ./files/decollector.init $(1)/etc/init.d/decollector
|
$(INSTALL_BIN) ./files/decollector.init $(1)/etc/init.d/decollector
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/collector/decollector $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/collector/decollector $(1)/usr/sbin/
|
||||||
else
|
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/map-plugins
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/src/collector/decollector.so $(1)/usr/lib/map-plugins
|
|
||||||
endif
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,wfadatad))
|
$(eval $(call BuildPackage,wfadatad))
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ USE_PROCD=1
|
|||||||
PROG=/usr/sbin/decollector
|
PROG=/usr/sbin/decollector
|
||||||
|
|
||||||
service_running() {
|
service_running() {
|
||||||
ubus -t 2 wait_for ieee1905 ieee1905.map
|
ubus -t 2 wait_for ieee1905 ieee1905.map topology
|
||||||
}
|
}
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
|
|||||||
@@ -8,20 +8,25 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=xmppc
|
PKG_NAME:=xmppc
|
||||||
PKG_VERSION:=1.0.3
|
PKG_VERSION:=2.0.2
|
||||||
|
|
||||||
PKG_SOURCE_VERSION:=4a09b8689d67dcbf3fd1b7e80e53816b7cd12614
|
LOCAL_DEV:=0
|
||||||
|
ifneq ($(LOCAL_DEV),1)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/xmppc.git
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/xmppc.git
|
||||||
|
PKG_SOURCE_VERSION:=63ba23c1dc5de3d136a3c1568ae9de08762fd0d0
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
PKG_MIRROR_HASH:=skip
|
PKG_MIRROR_HASH:=skip
|
||||||
|
endif
|
||||||
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
PKG_BUILD_DEPENDS:=bbf
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/$(PKG_NAME)
|
define Package/$(PKG_NAME)
|
||||||
@@ -29,13 +34,19 @@ define Package/$(PKG_NAME)
|
|||||||
CATEGORY:=Utilities
|
CATEGORY:=Utilities
|
||||||
SUBMENU:=TRx69
|
SUBMENU:=TRx69
|
||||||
TITLE:=BBF xmpp Client
|
TITLE:=BBF xmpp Client
|
||||||
DEPENDS:=+libuci +libubox +libstrophe +libbbf_api +libubus
|
DEPENDS:=+libuci +libubox +libstrophe +libubus
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/$(PKG_NAME)/description
|
define Package/$(PKG_NAME)/description
|
||||||
BBF XMPP Client
|
BBF XMPP Client
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
ifeq ($(LOCAL_DEV),1)
|
||||||
|
define Build/Prepare
|
||||||
|
$(CP) -rf ~/git/xmppc/* $(PKG_BUILD_DIR)/
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
-D_GNU_SOURCE \
|
-D_GNU_SOURCE \
|
||||||
-Wall -Werror
|
-Wall -Werror
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
|
|
||||||
config xmpp 'xmpp'
|
config xmpp 'xmpp'
|
||||||
option enable '0'
|
option conn_req_connection 'connection_1'
|
||||||
option id '0'
|
|
||||||
option allowed_jid ''
|
option allowed_jid ''
|
||||||
#Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4
|
#Log levels: Critical=0, Warning=1, Notice=2, Info=3, Debug=4
|
||||||
option loglevel '3'
|
option loglevel '3'
|
||||||
|
|
||||||
config connection
|
config connection 'connection_1'
|
||||||
option xmpp_id '1'
|
|
||||||
option enable '0'
|
option enable '0'
|
||||||
option username ''
|
option username ''
|
||||||
option password ''
|
option password ''
|
||||||
@@ -21,9 +19,19 @@ config connection
|
|||||||
option retry_max_interval '1'
|
option retry_max_interval '1'
|
||||||
option serveralgorithm 'DNS-SRV'
|
option serveralgorithm 'DNS-SRV'
|
||||||
|
|
||||||
config connection_server
|
config connection_server 'connection_1_srv_1'
|
||||||
option con_id '1'
|
option con_name 'connection_1'
|
||||||
option enable '0'
|
option enable '0'
|
||||||
|
option priority '0'
|
||||||
|
option weight '-1'
|
||||||
|
option port '5222'
|
||||||
|
option server_address ''
|
||||||
|
|
||||||
|
config connection_server 'connection_1_srv_2'
|
||||||
|
option con_name 'connection_1'
|
||||||
|
option enable '0'
|
||||||
|
option priority '0'
|
||||||
|
option weight '-1'
|
||||||
option port '5222'
|
option port '5222'
|
||||||
option server_address ''
|
option server_address ''
|
||||||
|
|
||||||
|
|||||||
@@ -7,20 +7,13 @@ USE_PROCD=1
|
|||||||
PROG="/usr/sbin/xmppc"
|
PROG="/usr/sbin/xmppc"
|
||||||
|
|
||||||
start_service() {
|
start_service() {
|
||||||
local xmpp_enable=`uci -q get xmpp.xmpp.enable`
|
local con_name=$(uci -q get xmpp.xmpp.conn_req_connection)
|
||||||
local xmpp_id=`uci -q get xmpp.xmpp.id`
|
local con_enable=$(uci -q get xmpp.$con_name.enable)
|
||||||
if ([ "$xmpp_enable" = "1" ] && [ "$xmpp_id" != "0" ]); then
|
if [ "$con_enable" == "1" ]; then
|
||||||
local con=`uci show xmpp | grep "xmpp.@connection.*xmpp_id=\'$xmpp_id\'" | cut -d "." -f 2`
|
procd_open_instance
|
||||||
local con_srv=`uci show xmpp | grep "xmpp.@connection.*con_id=\'$xmpp_id\'" | cut -d "." -f 2`
|
procd_set_param command "$PROG"
|
||||||
local serveralgorithm=`uci get xmpp.$con.serveralgorithm`
|
procd_set_param respawn "3" "7" "0"
|
||||||
local con_enable=`uci -q get xmpp.$con.enable`
|
procd_close_instance
|
||||||
local srv_enable=`uci -q get xmpp.$con_srv.enable`
|
|
||||||
if ([ "$serveralgorithm" = "DNS-SRV" ] && [ "$con_enable" = "1" ]) || ([ "$serveralgorithm" = "ServerTable" ] && [ "$con_enable" = "1" ] && [ "$srv_enable" = "1" ]); then
|
|
||||||
procd_open_instance xmppc
|
|
||||||
procd_set_param command "$PROG"
|
|
||||||
procd_set_param respawn "3" "7" "0"
|
|
||||||
procd_close_instance
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,6 +22,7 @@ boot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
reload_service() {
|
reload_service() {
|
||||||
|
logger -p crit -t "xmppc" "reloading service()"
|
||||||
stop
|
stop
|
||||||
start
|
start
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user