Compare commits

..

1 Commits

Author SHA1 Message Date
suvendhu
e074127408 swmodd: added libcrun support for crun containers 2022-02-11 16:20:33 +05:30
30 changed files with 706 additions and 333 deletions

View File

@@ -5,11 +5,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libbbfdm
PKG_VERSION:=6.5.6
PKG_VERSION:=6.5.3
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/bbf.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=aa25738c8e923a2ff54aaccb44bf8126435789f0
PKG_SOURCE_VERSION:=e76452462912f2a5d59e759fd61e0e1d05a6e76d
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

40
crashlog/Makefile Normal file
View File

@@ -0,0 +1,40 @@
#
# Copyright (C) 2019 iopsys Software Solutions AB
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=crashlog
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=none
include $(INCLUDE_DIR)/package.mk
define Package/crashlog
CATEGORY:=Utilities
TITLE:=Handling kernel crash logs
endef
define Package/crashlog/description
Handling kernel crash logs.
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./files/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
endef
define Package/crashlog/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,crashlog))

Binary file not shown.

View File

@@ -0,0 +1,11 @@
#!/bin/sh /etc/rc.common
START=01
start()
{
if [ -e /proc/sys/kernel/core_pattern ]
then
echo "|/sbin/logcore %e %s" > /proc/sys/kernel/core_pattern
fi
}

View File

@@ -0,0 +1,55 @@
#!/bin/sh /etc/rc.common
START=99
send_log()
{
nr=$(db get hw.board.serial_number)
hw=$(db get hw.board.model_name)
fam=$(db get hw.board.iopVerFam)
sw=$(db get hw.board.iopVersion)
server=$(/sbin/uci get system.crashlog.server)
while true
do
scp -S /usr/sbin/logssh /proc/last_kmsg log@${server}:log/${fam}_${hw}_${sw}_${nr}
if [ $? == 0 ]
then
break;
fi
# wait for another minute then try again
sleep 60
done
}
fill_in_default()
{
/sbin/uci add system log
/sbin/uci rename system.@log[-1]=crashlog
/sbin/uci set system.crashlog.enable=no
/sbin/uci set system.crashlog.server="crashlog.iopsys.eu"
/sbin/uci commit
}
boot()
{
# is crashlog enabled ?
enable=$(/sbin/uci get system.crashlog.enable)
case $enable in
0|no|NO|false|FALSE)
exit 0
;;
"")
fill_in_default
exit 0
;;
esac
# is this boot a result from a crash ?
reason=$(cat /etc/boot_reason)
case $reason in
HW|WD)
send_log&
;;
esac
}

60
crashlog/files/sbin/logcore Executable file
View File

@@ -0,0 +1,60 @@
#! /bin/sh
TMP_CORE=/tmp/new_core
# first test if we can contact the log server.
# if not abort directly the core file takes up memory
alive()
{
ping -c1 $server
if [ $? != 0 ]
then
# drain core file from kernel
cat >/dev/null
exit 0
fi
}
fill_in_default()
{
/sbin/uci add system log
/sbin/uci rename system.@log[-1]=corelog
/sbin/uci set system.corelog.enable=no
/sbin/uci set system.corelog.server="corelog.iopsys.eu"
/sbin/uci commit
}
# is corelog enabled ?
enable=$(/sbin/uci get system.corelog.enable)
case $enable in
0|no|NO|false|FALSE)
# drain core file from kernel
cat >/dev/null
exit 0
;;
"")
fill_in_default
exit 0
;;
esac
server=$(/sbin/uci get system.corelog.server)
alive
# dump out the core to disk we need this as scp needs a size before we send data
# and this is the only way to know how much data there is
cat >$TMP_CORE
# in case filesystem/memory is full at least kill the core in the kernel memory should give us some
# more memory to work with. normally this would do nothing.
cat >/dev/null
nr=$(db get hw.board.serial_number)
hw=$(db get hw.board.model_name)
fam=$(hw.board.iopVerFam)
sw=$(db get hw.board.iopVersion)
scp -S /usr/sbin/logssh $TMP_CORE log@${server}:log/core_${1}_${2}_${fam}_${hw}_${sw}_${nr}
rm $TMP_CORE

6
crashlog/files/usr/sbin/logssh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
# we need to have the -y option to dropbear to not halt the scp when
# transfering the log file to a new server for the first time.
# since we already need this also put in the keyfile
ssh -y -i /etc/dropbear/logid $@

42
crashlog/readme Normal file
View File

@@ -0,0 +1,42 @@
Install scp server.
Create a user account on a server and make sure it's possible to login to it
using ssh.
For now the user has to be called "log"
USER is the user name of the account
HOME is the user home directory.
Both should be changed to the correct value in all following example commands.
create HOME/bin
Put scp_upload in HOME/bin
make it executable "chmod a+x HOME/bin/scp_upload"
create home/.ssh (observer the dot .shh)
create an empty file HOME/.ssh/authorized_keys
-------------------------------
Now everyhting is setup for use but we have not added any clients.
What we need is the public key for the clients.
For dropbear "dropbearkey -y -f files/etc/dropbear/logid" will generate the public key.
----------
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwn9RaDAzxW1dTmIhXgFBnpi1lhj8xhYpCVQiPxxdk9IEmH8zjo4y9j3sPkqKOlRnkwjpZIpLEKBnpQTwVIMCU/AG7nDJX3OH9RfS9mLJQLfFL8HyGCyqDezFWldbyovhJZvdUeK4tAXJWv2W3OVHiz2L8IlncBgP/E9DJElsyhhQHsM96UE6tBkXsvXkoDbMSYXFcLbgiUwBKfmM2BF/aPDL45iznGur7/2j9v95PwJ0gtMu9jjNRq+pXCXhTh3bsnczm0MpZC1aiRc9nJAeGIMmhrf15E4jBKgTnrstzJxGVAdajKeR954KcNsS33cS2Wmui2YjmPbBXjqf1frzJ log@iopsys
----------
The public key should be just one line. Add that line to the
HOME/.ssh/authorized_keys file on the scp server. Then add the follwoing as
the first text on the same line. that is insert before the key data.
command="HOME/bin/scp_upload",no-port-forwarding,no-agent-forwarding,no-X11-forwarding
Do not forget to change HOME to the correct value for the server and there
should be one space separating the key data and the above text.
---------------------------------
Now test to make sure that you can upload new files, not download files
and not overwrite files from the client.

53
crashlog/scp_upload Normal file
View File

@@ -0,0 +1,53 @@
#! /bin/bash
# authorized_keys command="/home/boxi/my_scp",no-port-forwarding,no-agent-forwarding,no-X11-forwarding
val=`expr match "$SSH_ORIGINAL_COMMAND" "scp"`
if [ $val != 3 ]
then
echo "only scp is allowed for this rsa key"
exit 1
fi
#strip out "scp" as getopts barf on anything not an option
args=${SSH_ORIGINAL_COMMAND:3}
# we must set args to positional paramters otherwise it's next to impossible
# to get to the rest of the line that is not arguments.
set -- $args
while getopts "rftdvpq" Option
do
case $Option in
r ) echo "recursive not allowed";exit 1;;
f ) echo "reading files not allowed";exit 1;;
t ) ;;
d ) ;;
v ) ;;
p ) ;;
q ) ;;
* ) ;; # Default.
esac
done
shift $(($OPTIND - 1))
file="$*"
dir=$(dirname "$file")
if [ "$dir" != "log" ]
then
echo "only allowed to write to log/"
exit 1
fi
# try to create uniq files
EXTRA=$((0))
while [ -e "${file}_${EXTRA}" ]
do
EXTRA=$((EXTRA +1))
done
logger -t scp_upload "${SSH_ORIGINAL_COMMAND}_${EXTRA}"
exec ${SSH_ORIGINAL_COMMAND}_${EXTRA}

View File

@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dectmngr
PKG_RELEASE:=3
PKG_VERSION:=3.5.1
PKG_VERSION:=3.5.0
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=ef9d4c6124d0ca66f048f3d678d9a25f13aa4207
PKG_SOURCE_VERSION:=d26b638450956d071f8717419da4bc2c8f3d625c
PKG_MIRROR_HASH:=skip
endif
@@ -53,7 +53,6 @@ endif
TARGET_CFLAGS += \
-Wall \
-Werror \
-I$(STAGING_DIR)/usr/include/libxml2
ifeq ($(CONFIG_ENABLE_LINE_SETTINGS_EXTENSION),y)

View File

@@ -13,7 +13,7 @@ LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/endptmngr.git
PKG_SOURCE_VERSION:=94df920d39e8589c7ac7f5523bf372d48ef24c5e
PKG_SOURCE_VERSION:=548fa04d2714feeadb500192905fa6fb8172e6dd
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
@@ -56,10 +56,6 @@ define Build/Prepare
endef
endif
TARGET_CFLAGS += \
-Wall \
-Werror
define Package/endptmngr/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/sbin

View File

@@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=icwmp
PKG_VERSION:=8.2.27
PKG_VERSION:=8.2.26
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/icwmp.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=da88c8c28656b2db54ab205d26faccda68546c05
PKG_SOURCE_VERSION:=f3eaed2e52a5db38fef6b732fa3c953220b0ec58
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip

54
libjwt/Makefile Normal file
View File

@@ -0,0 +1,54 @@
# Copyright (C) 2018 Iopsys
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libjwt
PKG_VERSION:=1.0.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=866607c7741421c8ac99876e7201eb32d9af1b92
PKG_SOURCE_URL:=https://github.com/benmcollins/libjwt.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_FIXUP:=autoreconf
PKG_LICENSE:=LGPLv3
PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/package.mk
define Package/libjwt
CATEGORY:=Libraries
DEPENDS:=+libopenssl +jansson
TITLE:= libjwt
endef
#TARGET_CFLAGS += \
# -I$(STAGING_DIR)/usr/include
# -I$(STAGING_DIR)/usr/include/libnl3
#MAKE_FLAGS += \
# CFLAGS="$(TARGET_CFLAGS)" \
# LDFLAGS="$(TARGET_LDFLAGS)" \
# FPIC="$(FPIC)" \
# PLATFORM="$(TARGET_PLATFORM)" \
# subdirs="$(subdirs)"
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/include/jwt.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/libjwt/.libs/libjwt.so* $(1)/usr/lib/
endef
define Package/libjwt/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libjwt/.libs/libjwt.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libjwt))

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent
PKG_VERSION:=7.1.0
PKG_VERSION:=6.6.4
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=5fbe1ee1c95cba679c78d658a56366541dee4795
PKG_SOURCE_VERSION:=2381371aba07b861003afc709369fa1ffc034e13
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=PROPRIETARY IOPSYS

View File

@@ -7,40 +7,30 @@ USE_PROCD=1
MAP_DEV="map_dev"
MAP_IF="map"
MAP_VETH="lei"
create_map() {
ip link add lei type veth peer name lei_map 2>/dev/null
ip link add link lei name lei_lan type vlan id 1 2>/dev/null
uci -q set network.${MAP_DEV}=device
uci -q set network.${MAP_DEV}.name=br-map
uci -q set network.${MAP_DEV}.type=bridge
uci -q show network.${MAP_DEV}.ports | grep -q lei_map || {
uci -q add_list network.${MAP_DEV}.ports='lei_map'
}
uci -q set network.${MAP_DEV}.bridge_empty=1
uci -q set network.${MAP_IF}=interface
uci -q set network.${MAP_IF}.device=br-map
uci -q set network.${MAP_IF}.is_lan=1
uci -q show network.br_lan.ports | grep -q lei_lan || {
uci -q add_list network.br_lan.ports="lei_lan"
}
uci -q set mapagent.agent.al_bridge=br-map
uci -q commit
ubus call network reload
ubus -t 5 wait_for network.interface.map
ubus -t 5 wait_for network.device
brctl addif br-map lei_map 2>/dev/null
brctl addif br-lan lei_lan 2>/dev/null
ip link set lei up 2>/dev/null
ip link set lei_map up 2>/dev/null
ip link set lei_lan up 2>/dev/null
ip link add ${MAP_VETH} type veth peer name ${MAP_VETH}_lan 2>/dev/null
brctl addif br-map ${MAP_VETH} 2>/dev/null
brctl addif br-lan ${MAP_VETH}_lan 2>/dev/null
ip link set ${MAP_VETH} up 2>/dev/null
ip link set ${MAP_VETH}_lan up 2>/dev/null
}
remove_map() {

View File

@@ -4,15 +4,11 @@
### Traffic Separation ###
dbg() {
logger -t traffic_separation $@
}
ts_sub() {
ts_usage() {
cat <<EOF
Usage: $0 [create|delete|populate|primary|reload]
Usage: $0 [create|delete|populate]
Traffic Separation related functions.
create fh <iface> <vid> - create vlan device and rules for wifi fronthaul
create bh <iface> <vid> <profile> - create vlan device and rules for wifi backhaul
@@ -20,7 +16,7 @@ create eth <iface> <vid> <pbits> - create vlan device and rules for logical ethe
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
exit 1
}
@@ -30,53 +26,23 @@ EOF
echo $bridge
}
set_wireless_bridge() {
config_load wireless
_set_network() {
local sec=$1
local iface=$2
local bridge=$3
config_get ifname $sec ifname
[ "$iface" != "$ifname" ] && continue
config_get mode $sec mode
config_get multi_ap $sec multi_ap "0"
[ "$mode" = "sta" -a "$multi_ap" = "1" ] && continue
config_get network $sec network
local new_network=${bridge##br-}
if [ "$new_network" != "$network" ] ; then
uci -q set wireless.${sec}.network=${new_network}
uci commit wireless
fi
brctl addif $bridge $iface &> /dev/null
}
config_foreach _set_network wifi-iface ${1} ${2}
}
ts_create() {
_create_vlan_dev() {
iface=$1 # real iface
vid=$2 # Vlan ID
bridge=$3 # bridge iface should be connected
old_bridge="$(_get_bridge $iface)" # bridge iface is connected to
bridge="$(_get_bridge $iface)" # bridge iface is connected to
vlan_dev=${iface}_vlan${vid} # name of vlan device to create
# remove interface from bridge if it is in one
[ -n "$old_bridge" ] && brctl delif $old_bridge $iface &> /dev/null
[ -n "$bridge" ] && brctl delif $bridge $iface &> /dev/null
# create vlan device
ip link show $vlan_dev &> /dev/null && vlanctl --if-delete $vlan_dev &> /dev/null
vlanctl --mcast --if-create-name $iface $vlan_dev --if $iface --set-if-mode-rg
# bring the vlan device up and add back to bridge if it was in one
brctl addif $bridge $vlan_dev &> /dev/null
ip link set $vlan_dev up
[ -n "$bridge" ] && brctl addif $bridge $vlan_dev &> /dev/null
ip link set dev $vlan_dev up
echo $vlan_dev
}
@@ -84,18 +50,16 @@ EOF
ts_create_fh() {
iface=$1 # fh iface
vid=$2 # SSID specific (secondary) or primary vid
bridge=$3
[ -n "$iface" ] && [ -n "$vid" ] && [ -n "$bridge" ] || {
[ -n "$iface" ] && [ -n "$vid" ] || {
cat <<EOF
Adding FH device requires IFACE, VID and bridge
Adding FH device requires IFACE and VID.
EOF
exit 1
}
# create vlan device
set_wireless_bridge $iface $bridge
vlan_dev=$(_create_vlan_dev $iface $vid $bridge)
vlan_dev=$(_create_vlan_dev $iface $vid)
# add rules
# Note: removing these for now since these packets are read directly from the iface anyway
@@ -139,15 +103,12 @@ EOF
exit 1
;;
esac
set_wireless_bridge $iface $bridge
}
ts_create_bh_drv() {
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
@@ -156,14 +117,6 @@ 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
@@ -172,6 +125,20 @@ EOF
}
ts_create_eth() {
_ts_setup() {
vlan_bridge=$1
lan_bridge=$2
vlan_dev=$3
lan_dev=${vlan_dev}_lan
ip link show $vlan_dev &> /dev/null || ip link add $vlan_dev type veth peer name $lan_dev
brctl addif $vlan_bridge $vlan_dev &> /dev/null
brctl addif $lan_bridge $lan_dev &> /dev/null
ip link set $vlan_dev up
ip link set $lan_dev up
}
iface=$1 # Multi-AP Logical Ethernet Interface
vid=$2 # primary vid
pbits=$3 # default pbits to apply
@@ -185,52 +152,25 @@ EOF
exit 1
}
ip link set lei down
ip link set lei_map down
# create virtual eth device between bridges (if it doesn't exist))
_ts_setup $vlan_bridge $lan_bridge $iface
old_bridge="$(_get_bridge lei_lan)"
[ -n "$old_bridge" ] && brctl delif $old_bridge lei_lan &> /dev/null
# create vlan device
vlan_dev=$(_create_vlan_dev $iface $vid)
ip link show lei_lan || ip link del lei_lan
ip link add link lei name lei_lan type vlan id ${vid}
# TODO: how to disable returning traffic back to incoming interface?
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
# add rules
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
}
ts_create_dhcp() {
local diff=""
_net_setup() {
local name=$1
local devname=$2
local vid=$3
[ -z "$(uci -q get network.${name})" ] && {
uci -q set network.${name}="interface"
uci -q set network.${name}.device="$devname"
uci -q set network.${name}.is_lan="1"
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"
}
[ "$diff" = "1" ] && uci -q commit network
}
_br_setup() {
local name=$1
local sinkname=$2
local vid=$3
local diff=""
[ -z "$(uci -q get network.${name}_dev)" ] && {
uci -q set network.${name}_dev="device"
@@ -253,7 +193,11 @@ EOF
diff="1"
}
[ "$diff" = "1" ] && uci -q commit network
[ "$diff" = "1" ] && {
uci -q commit network
ubus call network reload
ubus -t 5 wait_for network.device
}
}
_dhcp_setup() {
@@ -273,44 +217,43 @@ EOF
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
ubus call uci commit '{"config":"dhcp"}'
}
_firewall_setup() {
_wan_setup() {
local name=$1
local network=$2
local zone_exist=0
config_load firewall
_process_zone() {
local section=$1
local new_name=$2
local sink=$2
local name
local exists=false
config_get name $section name
[ "$name" == "$new_name" ] && zone_exist=1
[ "$name" == "lan" ] || return
_process_list() {
local value=$1
[ "$value" == "$sink" ] && exists=true && return 1
}
config_list_foreach "$section" network _process_list
[ $exists = false ] && {
uci -q add_list firewall.${section}.network="${sink}"
uci -q commit firewall
ubus call uci commit '{"config":"firewall"}'
}
return 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
@@ -322,26 +265,20 @@ 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}
}
br_dev=sink_vlan${vid} # name of vlan device to create
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}
ip l a sink1_vlan${vid} type veth peer name sink2_vlan${vid}
vlanctl --mcast --if-create-name sink2_vlan${vid} sink3_vlan${vid} --if sink2_vlan${vid} --set-if-mode-rg
vlanctl --if sink2_vlan${vid} --rx --tags 1 --filter-vid ${vid} 0 --set-rxif sink3_vlan${vid} --pop-tag --rule-append
vlanctl --if sink2_vlan${vid} --tx --tags 0 --filter-txif sink3_vlan${vid} --push-tag --set-vid ${vid} 0 --rule-append
ip l s sink1_vlan${vid} up
ip l s sink2_vlan${vid} up
ip l s sink3_vlan${vid} up
[ "$diff" = "1" ] && {
ubus call network reload
ubus -t 5 wait_for network.interface.sink${vid}
}
brctl addif br-map sink${vid}_vlan &> /dev/null
_br_setup $br_dev sink3_vlan${vid} $vid
_dhcp_setup $br_dev
_wan_setup $br_dev
}
local type=$1
@@ -363,15 +300,12 @@ EOF
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
}
vlanctl --if-delete $vlan_dev # note: also removes rules and removes from bridge
brctl addif $bridge $iface &> /dev/null
}
ts_populate() {
@@ -393,8 +327,8 @@ EOF
vlan_dev=${path##*upper_}
# add rules
#vlanctl --if $iface --rx --tags 1 --filter-vid $vid 0 --set-rxif $vlan_dev --rule-append # note: retain secondary vids
#vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --rule-append # note: already default
vlanctl --if $iface --rx --tags 1 --filter-vid $vid 0 --set-rxif $vlan_dev --rule-append # note: retain secondary vids
vlanctl --if $iface --tx --tags 1 --filter-vid $vid 0 --filter-txif $vlan_dev --rule-append # note: already default
}
ts_primary() {
@@ -431,50 +365,16 @@ EOF
ebtables -t broute -I BROUTING -i "$iface" -d 01:80:C2:00:00:13 -p 0x893a -j DROP
}
ts_reload() {
local dhcp_reload=$1
# workaround for missing backhaul wifi.ap.* ubus obj's:
# iterate in config and setup bh
config_load wireless
_setup_bh_iface() {
local sec=$1
local iface=$2
local bridge=$3
config_get ifname $sec ifname
config_get mode $sec mode
config_get multi_ap $sec multi_ap "0"
[ "$mode" = "ap" -a "$multi_ap" = "1" ] && {
ts_create bh $ifname 1 2 br-map
}
}
config_foreach _setup_bh_iface wifi-iface
[ -n "dhcp_reload" ] && /etc/init.d/dnsmasq reload
# another workaround for netif? removed
# sink devices for br-map bridge
for sink in $(ubus list network.interface.sink*) ; do
local sink_vlan=${sink/network.interface./}_vlan
brctl addif br-map $sink_vlan &> /dev/null
done
}
local func=$1
shift
case "$func" in
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 $@;;
create) ts_create $@;;
delete) ts_delete $@;;
populate) ts_populate $@;;
primary) ts_primary $@;;
unicast) ts_unicast $@;;
multicast) ts_multicast $@;;
--help|help) ts_usage;;
*) ts_usage; exit 1;;
esac

View File

@@ -5,9 +5,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=map-controller
PKG_VERSION:=6.0.0
PKG_VERSION:=5.4.7
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=4d8e171fabc16ee93bbad8d4a7471f8968836217
PKG_SOURCE_VERSION:=eaeebf6432bf845c8d9f055ffb63c46532477d06
PKG_LICENSE:=PROPRIETARY IOPSYS
PKG_LICENSE_FILES:=LICENSE

View File

@@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=map-topology
PKG_VERSION:=3.2.2
PKG_VERSION:=3.2.1
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_VERSION:=76767466f3dbd2a697fa4cdd966f4dd2ce4f43c8
PKG_SOURCE_VERSION:=8f1bd16f5023e41681e1b174afa92cfdce4abbb0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/map-topology.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz

40
mqtt-ciotc/Makefile Normal file
View File

@@ -0,0 +1,40 @@
#
# Copyright (C) 2020 IOPSYS
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mqtt-ciotc
PKG_VERSION:=0.1
PKG_SOURCE_VERSION:=00da3fb1f1691d836037dc4d93e38d0835ba46a4
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wifilife-testbed.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=Apache-2.0
include $(INCLUDE_DIR)/package.mk
define Package/mqtt-ciotc
CATEGORY:=Utilities
DEPENDS:=+libjwt +lib-paho-mqtt +libopenssl +libubox +ubus +libblobmsg-json
TITLE:=mqtt google iot clinet
endef
define Package/mqtt-ciotc/description
mqtt google iot client
endef
define Package/mqtt-ciotc/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mqtt_ciotc $(1)/sbin/
endef
$(eval $(call BuildPackage,mqtt-ciotc))

View File

@@ -0,0 +1,3 @@
config certs 'certs'
option private '/etc/mqtt-ciotc/rsa_private.pem'
option root '/etc/mqtt-ciotc/roots.pem'

View File

@@ -0,0 +1,35 @@
#!/bin/sh /etc/rc.common
START=96
STOP=10
PROG=/sbin/mqtt_ciotc
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command ${PROG}
config_load mqtt_ciotc
config_get private certs private
config_get root certs root
[ -n $private ] && procd_append_param command --private-cert $private
[ -n $root ] && procd_append_param command --root-cert $root
procd_set_param respawn
procd_close_instance
}
stop_service()
{
service_stop ${PROG}
}
reload_service() {
# procd_send_signal wifilife # use SIGHUP
stop
start
}
service_triggers() {
procd_add_reload_trigger "mqtt_ciotc"
}

View File

@@ -2,24 +2,16 @@ if PACKAGE_obuspa
menu "Configuration"
config OBUSPA_DB_PATH
string "Configure path for usp.db file"
default "/tmp/"
config OBUSPA_MTP_ENABLE_MQTT
bool "Enable MQTT as mtp protocol"
default y
config OBUSPA_MTP_ENABLE_WEBSOCKETS
bool "Enable WebSockets as mtp protocol"
default y
config OBUSPA_MTP_ENABLE_STOMP
bool "Enable STOMP as mtp protocol"
default y
config OBUSPA_MTP_ENABLE_MQTT
bool "Enable MQTT as mtp protocol"
default y
config OBUSPA_MTP_ENABLE_COAP
bool "Enable CoAP as mtp protocol"
default n
default y
endmenu
endif

View File

@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=obuspa
PKG_VERSION:=5.0.0.2
PKG_VERSION:=4.1.0.18
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=0afaf5eeed63dceb275d7715ccce8977cfad1ee3
PKG_SOURCE_VERSION:=af3d4663d66942e3b0e3253375c5620629769aa5
PKG_SOURCE_URL:=https://dev.iopsys.eu/fork/obuspa.git
PKG_MAINTAINER:=Vivek Dutta <vivek.dutta@iopsys.eu>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
@@ -31,7 +31,7 @@ define Package/obuspa
CATEGORY:=Utilities
SUBMENU:=TRx69
TITLE:=USP agent
DEPENDS:=+libopenssl +libcurl +libsqlite3 +libubox +libubus +uspd +libmosquitto-ssl +libwebsockets-openssl
DEPENDS:=+libopenssl +libcurl +libsqlite3 +libubox +libubus +uspd +libmosquitto
endef
define Package/obuspa/description
@@ -44,14 +44,7 @@ endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE \
-Wall \
-Werror
ifneq ($(CONFIG_OBUSPA_DB_PATH),)
CONFIGURE_ARGS += \
--localstatedir="$(CONFIG_OBUSPA_DB_PATH)"
endif
-D_GNU_SOURCE
ifeq ($(CONFIG_OBUSPA_MTP_ENABLE_STOMP),y)
CONFIGURE_ARGS += \
@@ -77,14 +70,6 @@ else
--disable-coap
endif
ifeq ($(CONFIG_OBUSPA_MTP_ENABLE_WEBSOCKETS),y)
CONFIGURE_ARGS += \
--enable-websockets
else
CONFIGURE_ARGS += \
--disable-websockets
endif
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
$(CP) -rf ~/git/obuspa/* $(PKG_BUILD_DIR)/

View File

@@ -31,7 +31,7 @@ cleanup() {
trap cleanup EXIT
log() {
echo "$*"|logger -t obuspa.init -p debug
echo "${@}"|logger -t obuspa.init -p debug
}
db_set() {
@@ -49,8 +49,9 @@ update_keep() {
return;
fi
if grep -q "${keep_file}" ${KEEP_FILES}; then
echo "${keep_file}" >> ${KEEP_FILES}
grep -q "${keep_file}" ${KEEP_FILES}
if [ "$?" -ne 0 ]; then
echo ${keep_file} >> ${KEEP_FILES}
fi
}
@@ -62,12 +63,11 @@ get_index() {
}
get_role_index_from_json() {
local role="$*"
local role="${@}"
local num=0
local roles_obj
# In case of role is empty or file not present
if [ -z "${role}" ] || [ ! -f "${role_def_file}" ]; then
if [ -z "${role}" -o ! -f "${role_def_file}" ]; then
return 0
fi
@@ -79,11 +79,11 @@ get_role_index_from_json() {
for k in ${roles_obj}; do
local rname
json_select "$k"
json_select $k
json_get_var rname name
json_select ..
if [ "${rname}" != "Untrusted" ] && [ "${rname}" != "full_access" ]; then
if [ "${rname}" != "Untrusted" -a "${rname}" != "full_access" ]; then
num=$(( num + 1 ))
fi
@@ -102,10 +102,10 @@ get_uci_ref_index() {
index=0
config_load $CONFIGURATION
config_foreach get_index "$1" "$2"
config_foreach get_index $1 $2
val=$(cat ${USP_TEMP_FILE})
if [ -z "${val}" ]; then
if [ -z $val ]; then
val=0
fi
@@ -121,7 +121,7 @@ validate_obuspa_section()
'trust_cert:file' \
'client_cert:file' \
'interface:string' \
'ifname:string' \
'ifname:string:br-lan' \
'debug:bool:false' \
'prototrace:bool:false' \
'log_level:uinteger' \
@@ -224,11 +224,16 @@ validate_mqtt_client_section()
}
get_oui_from_db() {
db -q get device.deviceinfo.ManufacturerOUI
local oui="$(db get device.deviceinfo.ManufacturerOUI)"
echo "${oui}"
}
get_serial_from_db() {
db -q get device.deviceinfo.SerialNumber
local serial="$(db get device.deviceinfo.SerialNumber)"
# this can encoded further
echo "${serial}"
}
publish_endpoint() {
@@ -236,7 +241,7 @@ publish_endpoint() {
local opt=""
# return if mosquitto_pub is not present
if [ ! "$(command -v mosquitto_pub)" ]; then
if [ ! "$(which mosquitto_pub)" ]; then
log "mosquitto_pub not present can't publish EndpointID"
return 0;
fi
@@ -290,26 +295,26 @@ configure_controller() {
return 1;
}
if [ -z "${EndpointID}" ] || [ -z "${Protocol}" ]; then
if [ -z "${EndpointID}" -o -z "${Protocol}" ]; then
log "controller:: EndpointID id and Protocol cannot be empty"
return 1;
fi
if [ -z "${stomp}" ] && [ -z "${Reference}" ] && [ -z "${mqtt}" ] && [ -z "${coap_path}" ]; then
if [ -z "${stomp}" -a -z "${Reference}" -a -z "${mqtt}" -a -z "${coap_path}" ]; then
log "controller:: Invalid configuration"
return 1;
fi
if [ -z "${Reference}" ]; then
if [ "${Protocol}" = "STOMP" ]; then
val=$(get_uci_ref_index stomp "${stomp}")
val=$(get_uci_ref_index stomp ${stomp})
if [ "${val}" -eq 0 ]; then
log "Not able to find the referred stomp section"
return 1;
fi
Reference="Device.STOMP.Connection.${val}"
elif [ "${Protocol}" = "MQTT" ]; then
val=$(get_uci_ref_index mqtt "${mqtt}")
val=$(get_uci_ref_index mqtt ${mqtt})
if [ "${val}" -eq 0 ]; then
log "Not able to find the referred mqtt section"
return 1;
@@ -327,7 +332,7 @@ configure_controller() {
db_set Device.LocalAgent.Controller.${controller_num}.AssignedRole "${AssignedRole}"
else
if [ -n "${assigned_role_name}" ]; then
AssignedRole=$(get_role_index "${assigned_role_name}")
AssignedRole=$(get_role_index ${assigned_role_name})
db_set Device.LocalAgent.Controller.${controller_num}.AssignedRole "${AssignedRole}"
fi
fi
@@ -368,7 +373,7 @@ configure_controller() {
db_set Device.LocalAgent.Controller.${controller_num}.BootParameter.${_pnum}.Alias "cpe-${_pnum}"
db_set Device.LocalAgent.Controller.${controller_num}.BootParameter.${_pnum}.Enable "${Enable}"
db_set Device.LocalAgent.Controller.${controller_num}.BootParameter.${_pnum}.ParameterName "${param}"
_pnum=$(( _pnum + 1 ))
_pnum=$(( ${_pnum} + 1 ))
done
db_set
@@ -383,12 +388,12 @@ configure_subscription(){
return 1;
}
if [ -z "${Recipient}" ] && [ -z "${controller}" ]; then
if [ -z "${Recipient}" -a -z "${controller}" ]; then
log "No recipient for subscription"
fi
if [ -z "${Recipient}" ]; then
val=$(get_uci_ref_index controller "${controller}")
val=$(get_uci_ref_index controller ${controller})
if [ "${val}" -eq 0 ]; then
log "Not able to find the referred controller section"
return 1;
@@ -425,7 +430,8 @@ check_json_load()
local ret=0
if [ -f "${role_def_file}" ]; then
json_init
if json_load_file "${role_def_file}" 2>&1 |grep -q Failed; then
json_load_file "${role_def_file}" 2>&1 |grep -q Failed
if [ $? -eq 0 ]; then # In case of invalid json file
log "failed to load [${role_def_file}]"
ret=1
fi
@@ -437,7 +443,7 @@ check_json_load()
get_role_index() {
local role="Device.LocalAgent.ControllerTrust.Role"
local idx=0
local role_name="$*"
local role_name="${@}"
case "${role_name}" in
'full_access')
@@ -449,9 +455,10 @@ get_role_index() {
*)
local ji=0
ji=$(check_json_load)
if [ "${ji}" -eq 0 ]; then
get_role_index_from_json "${role_name}"
check_json_load
if [ $? -eq 0 ]; then
get_role_index_from_json ${role_name}
ji=$?
fi
idx=$(( ji + 2 )) # Add predefined roles
esac
@@ -467,7 +474,7 @@ configure_challenges() {
exit 1;
}
if [ -z "${role_name}" ] && [ -z "${Role}" ]; then
if [ -z "${role_name}" -a -z "${Role}" ]; then
log "Either role_name or Role must defined for a challenge";
return 1;
fi
@@ -480,10 +487,10 @@ configure_challenges() {
fi
if [ -z "${Role}" ]; then
Role=$(get_role_index "${role_name}")
Role=$(get_role_index ${role_name})
fi
if [ -z "${Alias}" ] && [ -n "${role_name}" ]; then
if [ -z "${Alias}" -a -n "${role_name}" ]; then
Alias=${role_name}
fi
@@ -505,14 +512,14 @@ configure_mtp() {
if [ -z "${Reference}" ]; then
if [ "${Protocol}" = "STOMP" ]; then
val=$(get_uci_ref_index stomp "${stomp}")
val=$(get_uci_ref_index stomp ${stomp})
if [ "${val}" -eq 0 ]; then
log "Referred stomp section not found"
return 1;
fi
Reference="Device.STOMP.Connection.${val}"
elif [ "${Protocol}" = "MQTT" ]; then
val=$(get_uci_ref_index mqtt "${mqtt}")
val=$(get_uci_ref_index mqtt ${mqtt})
if [ "${val}" -eq 0 ]; then
log "Referred mqtt section not found"
return 1;
@@ -576,7 +583,7 @@ configure_stomp_connection() {
configure_mqtt_client(){
local BrokerAddress BrokerPort Enable Username Password ProtocolVersion KeepAliveTime
local TransportProtocol ConnectRetryTime ConnectRetryMaxInterval ConnectRetryIntervalMultiplier ClientID
local TransportProtocol ConnectRetryTime ConnectRetryMaxInterval ConnectRetryIntervalMultiplier
validate_mqtt_client_section "${1}" || {
log "Validation of mqtt section failed"
@@ -610,7 +617,6 @@ configure_mqtt_client(){
configure_obuspa() {
local enabled trust_cert ifname interface debug prototrace log_level db_file log_dest role_file
local client_cert
validate_obuspa_section "global" || {
log "Validation of global section failed"
@@ -626,59 +632,56 @@ configure_obuspa() {
procd_set_param stderr 1
fi
if [ "${debug}" -eq 1 ] && [ "${prototrace}" -eq 1 ]; then
if [ "${debug}" -eq 1 -a "${prototrace}" -eq 1 ]; then
procd_append_param command -p
fi
if [ "${debug}" -eq 1 ] && [ -n "${log_level}" ]; then
procd_append_param command -v "${log_level}"
if [ "${debug}" -eq 1 -a -n "${log_level}" ]; then
procd_append_param command -v ${log_level}
fi
if [ -n "${log_dest}" ]; then
procd_append_param command -l "${log_dest}"
procd_append_param command -l ${log_dest}
fi
if [ -n "${interface}" ]; then
network_get_physdev ifname "${interface}"
network_get_physdev ifname ${interface}
fi
if [ -n "${ifname}" ]; then
procd_set_param env USP_BOARD_IFNAME="${ifname}"
# Set this variable for root user and obuspa -c tool
if [ -f "${PROFILE}" ]; then
if grep -q "export USP_BOARD_IFNAME=${ifname}" ${PROFILE}; then
if grep -q "export USP_BOARD_IFNAME" ${PROFILE}; then
sed -i "g/export USP_BOARD_IFNAME/d" ${PROFILE}
fi
fi
fi
echo "export USP_BOARD_IFNAME=${ifname}" >> ${PROFILE}
else
if [ -f "$PROFILE" ]; then
if grep -q "export USP_BOARD_IFNAME" ${PROFILE}; then
# Set this variable for root user and obuspa -c tool
if [ -f "${PROFILE}" ]; then
grep -q "export USP_BOARD_IFNAME=${ifname}" ${PROFILE}
if [ "$?" -ne 0 ]; then
grep -q "export USP_BOARD_IFNAME" ${PROFILE}
if [ "$?" -eq 0 ]; then
sed -i "g/export USP_BOARD_IFNAME/d" ${PROFILE}
fi
echo "export USP_BOARD_IFNAME=${ifname}" >> ${PROFILE}
fi
else
echo "export USP_BOARD_IFNAME=${ifname}" > ${PROFILE}
fi
if [ -n "${db_file}" ]; then
update_keep "${db_file}"
procd_append_param command -f "${db_file}"
procd_append_param command -f ${db_file}
fi
if [ -n "${trust_cert}" ]; then
update_keep "${trust_cert}"
if [ -f "${trust_cert}" ]; then
procd_append_param command -t "${trust_cert}"
procd_append_param command -t ${trust_cert}
fi
fi
if [ -n "${client_cert}" ]; then
update_keep "${client_cert}"
if [ -f "${client_cert}" ]; then
procd_append_param command -a "${client_cert}"
procd_append_param command -a ${client_cert}
fi
fi
procd_set_param env USP_BOARD_IFNAME=${ifname}
}
# Create factory reset file
@@ -704,7 +707,6 @@ service_running() {
start_service() {
local enabled
mkdir -p /tmp/obuspa/
config_load obuspa
config_get enabled global enabled
@@ -718,8 +720,8 @@ start_service() {
db_init
procd_append_param command -r ${PARAM_FILE}
procd_set_param respawn \
"${respawn_threshold:-5}" \
"${respawn_timeout:-10}" "${respawn_retry:-3}"
${respawn_threshold:-5} \
${respawn_timeout:-10} ${respawn_retry:-3}
procd_set_param watch usp.raw
procd_close_instance
@@ -731,7 +733,7 @@ stop_service() {
config_load obuspa
config_get db_file global db_file
${PROG} -c stop >/dev/null 2>&1
${PROG} -c stop 2>&1 >/dev/null
if [ -z "${db_file}" ]; then
db_file="/tmp/usp.db"

47
paho-mqtt-c/Makefile Normal file
View File

@@ -0,0 +1,47 @@
#
# Copyright (C) 2020 IOPSYS
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=lib-paho-mqtt
PKG_VERSION:=0.1
PKG_SOURCE_VERSION:=9f715d0862a8e16099b5837c4e53a1bf6a6a0675
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/eclipse/paho.mqtt.c.git
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:=edl-v10
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
define Package/lib-paho-mqtt
CATEGORY:=Libraries
DEPENDS:=+libopenssl
TITLE:=package for mqtt stuff
endef
define Package/lib-paho-mqtt/description
a library
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib
$(INSTALL_DATA) $(PKG_BUILD_DIR)/src/*.h $(1)/usr/include/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/build/output/*.so* $(1)/usr/lib/
endef
define Package/lib-paho-mqtt/install
$(INSTALL_DIR) $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/build/output/*.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,lib-paho-mqtt))

View File

@@ -842,7 +842,7 @@ configure_classify() {
fcctl flush
}
pre_configure_queue() {
configure_queue() {
# Delete queues
rm -rf /tmp/qos/queue_stats
@@ -862,9 +862,7 @@ pre_configure_queue() {
touch /tmp/qos/$intf/q_order
touch /tmp/qos/$intf/q_precedence
done
}
configure_queue() {
# Load UCI file
config_load qos
config_foreach handle_q_order queue
@@ -915,7 +913,6 @@ configure_qos() {
#queue configuration is being done after shaper configuration,
#If port shapingrate configuration on DISC device is called after queue configuration then
#driver overwrites the queue shaping rate with default value of port shaping rate.
pre_configure_queue
configure_shaper
configure_queue
configure_policer
@@ -935,7 +932,6 @@ reload_qos() {
elif [ "$service_name" == "shaper" ]; then
configure_shaper
elif [ "$service_name" == "queue" ]; then
pre_configure_queue
configure_queue
elif [ "$service_name" == "classify" ]; then
configure_classify

View File

@@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=swmodd
PKG_VERSION:=2.0.24
PKG_VERSION:=2.0.23
LOCAL_DEV:=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=f729686d90b3fb33bb731a9bff119efc5357dfb1
PKG_SOURCE_VERSION:=0d047fc3e8ed15cde87e8781e00952aa43d4d558
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/swmodd.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
@@ -27,6 +27,7 @@ define Package/swmodd
SUBMENU:=TRx69
TITLE:= Software Modules Daemon
DEPENDS:=+libuci +libubox +ubus +libuuid +libbbf_api +opkg +libcurl \
+PACKAGE_crun:crun +PACKAGE_crun:cgroupfs-mount \
+PACKAGE_liblxc:liblxc +PACKAGE_liblxc:cgroupfs-mount \
+@BUSYBOX_CONFIG_BUSYBOX +@BUSYBOX_CONFIG_FEATURE_SHOW_SCRIPT
endef
@@ -48,6 +49,14 @@ MAKE_FLAGS += \
SWMOD_LXC="yes"
endif
ifeq ($(CONFIG_PACKAGE_crun),y)
MAKE_FLAGS += \
SWMOD_CRUN="yes"
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include/libcrun
endif
ifeq ($(CONFIG_SWMOD_HOST_IS_EXECENV),y)
MAKE_FLAGS += \
SWMOD_HOST_IS_EXECENV="yes"

55
ubus-mqtt/Makefile Normal file
View File

@@ -0,0 +1,55 @@
#
# Copyright (C) 2006-2010 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:=ubus-mqtt
PKG_VERSION:=14.20.0
PKG_RELEASE:=1
PKG_SOURCE_URL:=https://dev.iopsys.eu/3rdparty/ubus-mqtt.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=NONE
include $(INCLUDE_DIR)/package.mk
CONFIGURE_VARS += \
BUILD_CC="$(HOSTCC)" \
TARGET_CC="$(TARGET_CC)"
TARGET_CFLAGS += \
-L$(STAGING_DIR)/usr/lib -I$(STAGING_DIR)/usr/include
define Package/ubus-mqtt
SECTION:=utils
CATEGORY:=Utilities
TITLE:=ubus-mqtt - a ubus replicator for mqtt
URL:=http://www.alleato.se/
MAINTAINER:=Martin Assarsson
DEPENDS:=+jansson +libpthread +libmosquitto +libopenssl +ubus +libubox
endef
define Package/ubus-mqtt/install
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_BUILD_DIR)/src/ubus-mqtt $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) files/ubus-mqtt.init $(1)/etc/init.d/ubus-mqtt
endef
define Package/ubus-mqtt/postinst
#!/bin/sh
#/etc/init.d/ubus-mqtt enable
#/etc/init.d/ubus-mqtt restart
endef
$(eval $(call BuildPackage,ubus-mqtt))

View File

@@ -0,0 +1,20 @@
#!/bin/sh /etc/rc.common
#
# Start the ubus-mqtt
#
START=80
PID_FILE=/var/state/ubus-mqtt.pid
start() {
start-stop-daemon -S -b -m -p $PID_FILE -x /usr/sbin/ubus-mqtt
}
stop() {
start-stop-daemon -K -p $PID_FILE
}
restart() {
stop
start
}

View File

@@ -5,16 +5,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wfadatad
PKG_VERSION:=6.10.4
PKG_VERSION:=6.10.2
LOCAL_DEV=0
ifneq ($(LOCAL_DEV),1)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=538ab9e9de78eada6d668b076b295eaf51da32e8
PKG_SOURCE_VERSION:=aaeed1df50a22bd391e5b1609e946991157308f4
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/wfadatad.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=skip
endif
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=PROPRIETARY IOPSYS
@@ -55,25 +52,11 @@ ifeq ($(CONFIG_WFA_DELM_STANDALONE),y)
MAKE_FLAGS += CONFIG_WFA_DELM_STANDALONE=y
endif
ifneq (,$(findstring ALPHA,$(CONFIG_VERSION_CODE)))
MAKE_FLAGS += DEBUG=1
endif
ifneq (,$(findstring BETA,$(CONFIG_VERSION_CODE)))
MAKE_FLAGS += DEBUG=1
endif
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-I$(STAGING_DIR)/usr/include/libnl3 \
-D_GNU_SOURCE
ifeq ($(LOCAL_DEV),1)
define Build/Prepare
rsync -r --exclude=.* ~/git/wfadatad/ $(PKG_BUILD_DIR)/
endef
endif
MAKE_PATH:=src