Compare commits

...

14 Commits

Author SHA1 Message Date
Anjan Chanda
69fbaebca5 easy-soc-libs: libeasy-1.0.1 2019-12-13 15:37:11 +01:00
Amin Ben Ramdhane
56d540050f tr098: 1.0-2019-12-11 2019-12-11 17:07:41 +01:00
Amin Ben Ramdhane
81f449d288 icwmp: 4.0-2019-12-11 2019-12-11 17:05:46 +01:00
Amin Ben Ramdhane
167cdf8053 icwmp: compile icwmp-tr098d binary only if CONFIG_PACKAGE_icwmp-tr098 is selected 2019-12-11 17:00:59 +01:00
Sukru Senli
da53a2ef34 bbf: correct license 2019-12-10 16:15:25 +01:00
Sukru Senli
d86322a1a7 icwmp: correct license 2019-12-10 16:15:12 +01:00
Strhuan Blomquist
be83b9b677 Delete cve-check.sh 2019-12-10 15:40:52 +01:00
Amin Ben Ramdhane
e247f50a38 bbf: 1.0-2019-12-10 2019-12-10 10:36:13 +01:00
Amin Ben Ramdhane
b71d08d543 libbfdm: add tr157 files to include repo 2019-12-10 10:09:28 +01:00
Amin Ben Ramdhane
550c0aa4b5 tr098: 1.0-2019-12-09 2019-12-09 18:11:49 +01:00
Amin Ben Ramdhane
5c7962b353 icwmp: 4.0-2019-12-07 2019-12-09 11:49:10 +01:00
Amin Ben Ramdhane
67a4246293 bbf: 1.0-2019-12-07 2019-12-09 11:46:45 +01:00
Amin Ben Ramdhane
3fbd6315a4 opkgd: add new package 2019-12-09 11:43:52 +01:00
vdutta
4143aeb032 ieee1905: 1905 meshcomms stack integration 2019-12-09 12:58:53 +05:30
12 changed files with 375 additions and 57 deletions

View File

@@ -5,18 +5,18 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm
PKG_VERSION:=1.0-2019-11-11
PKG_VERSION:=1.0-2019-12-10
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=8ab504585c223cba35cd0b64c86825bd21a0e052
PKG_SOURCE_VERSION:=0ea0b2c89a51ad56ca76d171b7fd5dcf38e102cd
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPLv2
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
@@ -81,6 +81,7 @@ define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/libbbfdm
$(CP) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/libbbfdm/
$(CP) $(PKG_BUILD_DIR)/dmtree/tr181/*.h $(1)/usr/include/libbbfdm/
$(CP) $(PKG_BUILD_DIR)/dmtree/tr157/*.h $(1)/usr/include/libbbfdm/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/bin/.libs/libbbfdm.{a,so*} $(1)/usr/lib/
endef

View File

@@ -39,6 +39,12 @@ define Package/libwifi/config
source "$(SOURCE)/Config.in"
endef
define Package/libeasy
$(call Package/easy-soc-libs)
TITLE:= Helper and utility functions library (libeasy)
DEPENDS+=+libnl +libnl-route
endef
define Package/libwifi
$(call Package/easy-soc-libs)
TITLE:= WiFi library (libwifi)
@@ -88,7 +94,8 @@ endef
subdirs := \
$(if $(CONFIG_PACKAGE_libwifi),libwifi) \
$(if $(CONFIG_PACKAGE_libdsl),libdsl) \
$(if $(CONFIG_PACKAGE_libethernet),libethernet)
$(if $(CONFIG_PACKAGE_libethernet),libethernet) \
$(if $(CONFIG_PACKAGE_libeasy),libeasy)
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
@@ -108,6 +115,13 @@ define Build/Prepare
endef
endif
define Build/InstallDev/libeasy
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libeasy/easy.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libeasy/libeasy.so* $(1)/usr/lib/
endef
define Build/InstallDev/libwifi
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
@@ -140,6 +154,11 @@ define Build/InstallDev
$(foreach dir,$(subdirs),$(call Build/InstallDev/$(dir),$(1),$(2));)
endef
define Package/libeasy/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libeasy/libeasy.so* $(1)/usr/lib/
endef
define Package/libwifi/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libwifi/libwifi*.so* $(1)/usr/lib/
@@ -162,3 +181,4 @@ endef
$(eval $(call BuildPackage,libwifi))
$(eval $(call BuildPackage,libdsl))
$(eval $(call BuildPackage,libethernet))
$(eval $(call BuildPackage,libeasy))

View File

@@ -8,17 +8,17 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=4.0-2019-12-02
PKG_VERSION:=4.0-2019-12-11
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=26c76a504b4048527c6a93a486aa62529319f087
PKG_SOURCE_VERSION:=3fdaca7e3463d46a52f31496b0f84deb6b21eaf8
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=LICENSE
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=COPYING
PKG_CONFIG_DEPENDS:= \
CONFIG_CWMP_ACS_MULTI \
@@ -113,6 +113,11 @@ endif
TARGET_CFLAGS += \
-D_GNU_SOURCE -D_AADJ
ifeq ($(CONFIG_PACKAGE_icwmp-tr098),y)
CONFIGURE_ARGS += \
--enable-icwmp_tr098
endif
ifneq ($(CWMP_REVISION)_,_)
ifneq ($(CWMP_REVISION),exported)
ifneq ($(CWMP_REVISION),Unversioned directory)

View File

@@ -5,10 +5,10 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ieee1905
PKG_VERSION:=1.0.0
PKG_VERSION:=1.1.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=a6a39128b1fe5132e51de4f580bf66f373515dcd
PKG_SOURCE_VERSION:=3008fe46ee9247f0203b3a125fddebadbdd7dcdc
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/ieee1905.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
@@ -20,16 +20,21 @@ define Package/ieee1905
SECTION:=utils
CATEGORY:=Utilities
TITLE:=IEEE1905 handler
DEPENDS:=+meshcomms +libubox +libubus +libblobmsg-json
DEPENDS:= +libwifi +ubox +libpicoevent +libpcap +libopenssl +libuci +libjson-c
endef
define Package/ieee1905/description
Listens to ieee1905 messages, parse and expose them over ubus.
IEEE1905 stack with extended functionalities.
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE
-D_GNU_SOURCE \
-DSEND_EMPTY_TLVS \
-DFIX_BROKEN_TLVS \
-DSPEED_UP_DISCOVERY \
-DREGISTER_EXTENSION_BBF
#-DDO_NOT_ACCEPT_UNAUTHENTICATED_COMMANDS \
#define Build/Prepare
# $(CP) -rf ./ieee1905/* $(PKG_BUILD_DIR)/
@@ -37,9 +42,16 @@ TARGET_CFLAGS += \
define Package/ieee1905/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DIR) $(1)/etc/hotplug.d
$(INSTALL_DIR) $(1)/etc/hotplug.d/button
$(INSTALL_BIN) ./files/etc/init.d/ieee1905 $(1)/etc/init.d/ieee1905
$(INSTALL_BIN) ./files/etc/hotplug.d/button/11-ieee1905 $(1)/etc/hotplug.d/button/11-ieee1905
$(INSTALL_DATA) ./files/etc/config/ieee1905 $(1)/etc/config/ieee1905
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ieee1905 $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ieee1905d $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libs/*.so $(1)/usr/lib/
endef
$(eval $(call BuildPackage,ieee1905))

View File

@@ -0,0 +1,39 @@
config ieee1905
option enabled '1'
option debug true
config meshcomms 'global'
option enabled '1'
option basemacint 'wan'
option mapall true
# option registrar 'rai0'
option debug_level 2
option port 8888
option cmdu_event false
#config al-iface
# option enabled '1'
# option ifname 'br-lan'
# option media 'bridge'
# option manufacturer_name 'Broadcom'
# option model_name 'Eth EG400'
# option model_number '00002'
# option device_name 'EG400R1'
#config al-iface
# option enabled '1'
# option ifname 'wl0'
# option media 'ap'
# option manufacturer_name 'Mediatek'
# option model_name 'WIFI EX400'
# option model_number '00001'
# option device_name 'EX400R0'
#config al-iface
# option enabled '1'
# option ifname 'wl1'
# option media 'ap'
# option manufacturer_name 'Mediatek'
# option model_name 'WIFI EX400'
# option model_number '00001'
# option device_name 'EX400R0'

View File

@@ -0,0 +1,36 @@
#!/bin/sh
TOPOLOGY_FILE="/tmp/topology_change"
WPS_FILE="/tmp/virtual_push_button"
handle_topology_change() {
[ -f ${TOPOLOGY_FILE} ] && \
touch ${TOPOLOGY_FILE}
}
handle_wps() {
[ -f ${WPS_FILE} ] && \
touch ${WPS_FILE}
}
case "$ACTION" in
add|register)
[ "wifibutton" == "$INTERFACE" -o "ecobutton" == "$INTERFACE" ] && {
handle_wps
}
[ "wifi_2g" == "$INTERFACE" ] && {
handle_wps
}
[ "wifi_5g" == "$INTERFACE" ] && {
handle_wps
}
[ "wpsbutton" == "$INTERFACE" ] && {
handle_wps
}
[ "wpscbutton" == "$INTERFACE" ] && {
handle_topology_change
}
;;
remove|unregister)
;;
esac

View File

@@ -4,11 +4,184 @@ START=99
STOP=10
USE_PROCD=1
PROG=/usr/sbin/ieee1905
PROG=/usr/sbin/ieee1905d
MESH_CONF=/tmp/meshcomms.config
INTERFACE=""
validate_global_section()
{
uci_validate_section ieee1905 meshcomms "${1}" \
'enabled:bool:false' \
'basemacint:string:wan' \
'almac:string' \
'registrar:string' \
'mapall:bool:true' \
'debug_level:uinteger:5' \
'port:port:8888' \
'cmdu_event:bool:true'
}
validate_ieee1905_section()
{
uci_validate_section ieee1905 ieee1905 "${1}" \
'debug:bool:true' \
'enabled:bool:true'
}
get_device_name() {
local device
# Get wan L3 interface
ubus list |grep -iq network.interface.${1}
if [ "$?" -eq 0 ]; then
json_load "$(ubus -t 2 call network.interface.${1} status)"
json_get_var device device
echo ${device}
fi
}
get_interface_mac() {
local l3 basemac
l3=$(get_device_name ${1})
if [ -n ${l3} ]; then
json_load "$(ubus -t 2 call network.device status "{\"name\":\"${l3}\"}")"
json_get_var basemac macaddr
fi
local first=0x$(echo $basemac |cut -d : -f 1)
local rest=$(echo $basemac |cut -d : -f 2-)
# Set local bit
first=$((first|2))
first=$(printf "%x" $first)
basemac="${first}:${rest}"
echo ${basemac}
}
validate_al_section()
{
uci_validate_section ieee1905 al-iface "${1}" \
'enabled:bool:false' \
'ifname:string' \
'media:string:eth' \
'manufacturer_name:string:iopsys' \
'model_name:string' \
'model_number:string' \
'device_name:string'
}
configure_interface()
{
local ifname media enabled manufacturer_name model_name model_number device_name
validate_al_section ${1} || {
echo "Validation of global section failed"
return 1;
}
if [ ${enabled} -eq 0 ]; then
return;
fi
if [ -z ${INTERFACE} ]; then
INTERFACE=${ifname}
else
INTERFACE="${INTERFACE},${ifname}"
fi
json_add_object
json_add_string ifname ${ifname}
json_add_string media ${media}
json_add_string manufacturer_name ${manufacturer_name}
json_add_string model_name ${model_name}
json_add_string model_number ${model_number}
json_add_string device_name ${device_name}
json_close_object
}
configure_meshcomms()
{
local enabled almac basemacint mapall debug_level port l3device basemac intf registrar cmdu_event
validate_global_section global || {
echo "Validation of global section failed"
return 1;
}
if [ -z ${almac} ]; then
basemac=$(get_interface_mac ${basemacint})
else
basemac=${almac}
fi
local fname cname model cUrl
fname=$(db get hw.board.boardId)
cname=$(db get hw.board.iopVerCustomer)
model=$(db get hw.board.routerModel)
cUrl="http://192.168.1.1"
json_init
# fill the al-iface info
json_add_array al-iface
config_foreach configure_interface al-iface
json_close_array
json_add_object deviceInfo
json_add_string friendly_name ${fname}
json_add_string manufacturer_name ${cname}
json_add_string model ${model}
json_add_string control_url ${cUrl}
json_close_object
json_add_object meshcomms
json_add_int enabled ${enabled}
json_add_string mac ${basemac}
json_add_string interfaces ${INTERFACE}
json_add_int map ${mapall}
json_add_string registrar ${registrar}
json_add_int debug_level ${debug_level}
json_add_int port ${port}
json_add_int cmdu_event ${cmdu_event}
json_close_object
json_dump >${MESH_CONF}
}
configure_ieee1905()
{
local enabled debug
validate_ieee1905_section ${1} || {
echo "Validation of ieee1905 section failed"
exit 1;
}
if [ ${debug} -eq 1 ]; then
# Forward stdout of the command to logd
procd_set_param stdout 1
# Same for stderr
procd_set_param stderr 1
fi
if [ ${enabled} -ne 1 ]; then
exit 0;
fi
}
configure_network() {
[ -f ${MESH_CONF} ] && rm ${MESH_CONF}
ebtables -L FORWARD|grep -iqE "1:80:C2:(0)+:(0)+:13.*-j.*DROP"
if [ "$?" -ne 0 ]; then
echo "Applying drop rule to drop pkts forwared by kernel to 1905.1 multicast mac"
ebtables -A FORWARD -d 01:80:c2:00:00:13 -j DROP
fi
config_load ieee1905
config_foreach configure_ieee1905 ieee1905
config_foreach configure_meshcomms meshcomms
}
start_service() {
procd_open_instance
procd_open_instance ieee1905
procd_set_param command ${PROG}
configure_network
procd_set_param respawn
procd_close_instance
}
@@ -18,7 +191,7 @@ reload_service() {
start
}
service_triggers()
{
procd_add_config_trigger "config.change" "ieee1905" /etc/init.d/ieee1905 restart
service_triggers() {
procd_add_reload_trigger "network"
procd_add_reload_trigger "netmode"
}

View File

@@ -1,36 +0,0 @@
#!/bin/sh
function cvecheck {
CVEDIR="/tmp/cve-indicator/"
CVEBIN="${CVEDIR}/bin"
REPORTS="reports"
mkdir -p $REPORTS
dpkg -s python3 python3-requests python3-yaml python3-mako python3-six &> /dev/null
if [ $? -ne 0 ]
then
echo "Missing dependencies"
sudo apt-get update
sudo apt-get install python3 python3-requests python3-yaml python3-mako python3-six
else
echo "Dependecy check passed"
fi
if [ -d "$CVEDIR" ]; then
### Take action if $DIR exists ###
echo "${CVEDIR} exists running cvecheck"
else
### Control will jump here if $DIR does NOT exists ###
echo "Error: cvecheck not found. getting from iopsys repo"
git clone git@dev.iopsys.eu:iopsys/cve-indicator.git /tmp/cve-indicator
fi
CVEGENLIST=`${CVEBIN}/cve-indicator gen-list openwrt bin`
CVEGETCVES=`${CVEBIN}/cve-indicator get-cves $CVEGENLIST --api_url http://cve.circl.lu/api/cvefor/`
CVEGETRPRT=`${CVEBIN}/cve-indicator gen-rprt $CVEGETCVES`
exit 0
}
register_command "cvecheck" "Generate a CVE report on latest build"

48
opkgd/Makefile Executable file
View File

@@ -0,0 +1,48 @@
#
# Copyright (C) 2019 IOPSYS
#
#
include $(TOPDIR)/rules.mk
PKG_NAME:=opkgd
PKG_VERSION:=1.0.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=d3da32eca6e50b6be6e846a7f82c8e93c74c45a4
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/opkgd.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/opkgd
SECTION:=utils
CATEGORY:=Utilities
TITLE:=OPKG ubus backend
DEPENDS:=+libuci +libubox +ubus +libuuid
endef
define Package/opkgd/description
Ubus based backend for OPKG which can be used by other applications running on top of it.
endef
define Build/Prepare
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE
define Package/opkgd/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/opkgd.init $(1)/etc/init.d/opkgd
$(INSTALL_DIR) $(1)/etc/opkg
$(INSTALL_CONF) ./files/map_du $(1)/etc/opkg/map_du
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/opkgd $(1)/usr/sbin/opkgd
endef
$(eval $(call BuildPackage,opkgd))

0
opkgd/files/map_du Normal file
View File

20
opkgd/files/opkgd.init Normal file
View File

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

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libtr098
PKG_VERSION:=1.0-2019-11-28
PKG_VERSION:=1.0-2019-12-11
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/tr-098
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=ef37524dfb7795ff75b3d10344f8f078f4b892be
PKG_SOURCE_VERSION:=ce93aebda4c14cfc43a7a60d67d4716a576171fd
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)