mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-01-10 06:37:15 +08:00
Compare commits
23 Commits
host_acl_1
...
qos_shaper
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8711c64ff6 | ||
|
|
b6477e8b84 | ||
|
|
6f24ad440c | ||
|
|
640d24ea66 | ||
|
|
60b06dd739 | ||
|
|
501966b150 | ||
|
|
32e6e38103 | ||
|
|
adce72980b | ||
|
|
695351633d | ||
|
|
a2b4aedce5 | ||
|
|
37dd1361b0 | ||
|
|
68042169ff | ||
|
|
f110bdbe68 | ||
|
|
923e714017 | ||
|
|
81dd8f8afa | ||
|
|
73d855e682 | ||
|
|
a5606ed518 | ||
|
|
ca2a495790 | ||
|
|
695b7374bc | ||
|
|
f9df86feec | ||
|
|
8686249557 | ||
|
|
a8d529f9ea | ||
|
|
4715de6308 |
@@ -5,13 +5,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=bbfdm
|
||||
PKG_VERSION:=1.4.1
|
||||
PKG_VERSION:=1.4.2
|
||||
|
||||
USE_LOCAL:=0
|
||||
ifneq ($(USE_LOCAL),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/bbfdm.git
|
||||
PKG_SOURCE_VERSION:=4ff4f09126354b92c57d44ba3bd7a832f64f2425
|
||||
PKG_SOURCE_VERSION:=a0a0dbd2c51da949115678ddc0180b6953fcbb6a
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
endif
|
||||
|
||||
@@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dectmngr
|
||||
PKG_RELEASE:=3
|
||||
PKG_VERSION:=3.5.17
|
||||
PKG_VERSION:=3.5.19
|
||||
|
||||
LOCAL_DEV=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/dectmngr.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=3e2eeaf2e5ed25d2ec31ee3878e9fe58eeaf4f78
|
||||
PKG_SOURCE_VERSION:=1fd0b11ad34f8f59b40c3a12e0cc07aa212eb87b
|
||||
PKG_MIRROR_HASH:=skip
|
||||
endif
|
||||
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=hostmngr
|
||||
PKG_VERSION:=1.0.5
|
||||
PKG_VERSION:=1.0.7
|
||||
|
||||
LOCAL_DEV=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=fcfcbc54e2f7a7bec9c599181f2d2c735eb41dda
|
||||
PKG_SOURCE_VERSION:=975549e01df338a90e1d1a356d22a2c7f5bf2387
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/hostmngr.git
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
@@ -40,6 +40,7 @@ function feeds_update {
|
||||
# replace core packages with iopsys versions
|
||||
if [ $override == 1 ]; then
|
||||
./scripts/feeds install -f -p openwrt_core -a || exit 1
|
||||
./scripts/feeds install -f -p qualcomm -a || exit 1
|
||||
fi
|
||||
|
||||
(
|
||||
|
||||
@@ -16,7 +16,7 @@ function genconfig {
|
||||
brcmbca_feed="target/linux/feeds/brcmbca"
|
||||
airoha_feed="target/linux/feeds/airoha"
|
||||
x86_feed="target/linux/feeds/x86"
|
||||
armvirt_feed="target/linux/feeds/armvirt"
|
||||
armsr_feed="target/linux/feeds/armsr"
|
||||
mediatek_feed="target/linux/feeds/mediatek"
|
||||
qualcomm_ipq95xx_feed="target/linux/feeds/ipq95xx"
|
||||
qualcomm_ipq53xx_feed="target/linux/feeds/ipq53xx"
|
||||
@@ -108,8 +108,8 @@ function genconfig {
|
||||
airoha=$(cd $airoha_feed; ./genconfig)
|
||||
[ -e $x86_feed/genconfig ] &&
|
||||
x86=$(cd $x86_feed; ./genconfig)
|
||||
[ -e $armvirt_feed/genconfig ] &&
|
||||
armvirt=$(cd $armvirt_feed; ./genconfig)
|
||||
[ -e $armsr_feed/genconfig ] &&
|
||||
armsr=$(cd $armsr_feed; ./genconfig)
|
||||
[ -e $mediatek_feed/genconfig ] &&
|
||||
mediatek=$(cd $mediatek_feed; ./genconfig)
|
||||
[ -e $qualcomm_ipq95xx_feed/genconfig ] &&
|
||||
@@ -118,7 +118,7 @@ function genconfig {
|
||||
ipq53xx=$(cd $qualcomm_ipq53xx_feed; ./genconfig)
|
||||
|
||||
if [ "$profile" == "LIST" ]; then
|
||||
for list in brcmbca airoha x86 armvirt mediatek ipq95xx ipq53xx; do
|
||||
for list in brcmbca airoha x86 armsr mediatek ipq95xx ipq53xx; do
|
||||
echo "$list based boards:"
|
||||
a=$(echo "${!list}" | sort)
|
||||
for b in $a; do
|
||||
@@ -144,10 +144,10 @@ function genconfig {
|
||||
fi
|
||||
done
|
||||
|
||||
for p in $armvirt; do
|
||||
for p in $armsr; do
|
||||
if [ $p == $profile ]; then
|
||||
target="armvirt"
|
||||
target_config_path="$armvirt_feed/config"
|
||||
target="armsr"
|
||||
target_config_path="$armsr_feed/config"
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -15,7 +15,7 @@ function genconfig_min {
|
||||
brcmbca_feed="target/linux/feeds/brcmbca"
|
||||
airoha_feed="target/linux/feeds/airoha"
|
||||
x86_feed="target/linux/feeds/x86"
|
||||
armvirt_feed="target/linux/feeds/armvirt"
|
||||
armsr_feed="target/linux/feeds/armsr"
|
||||
mediatek_feed="target/linux/feeds/mediatek"
|
||||
qualcomm_ipq95xx_feed="target/linux/feeds/ipq95xx"
|
||||
qualcomm_ipq53xx_feed="target/linux/feeds/ipq53xx"
|
||||
@@ -107,8 +107,8 @@ function genconfig_min {
|
||||
airoha=$(cd $airoha_feed; ./genconfig)
|
||||
[ -e $x86_feed/genconfig ] &&
|
||||
x86=$(cd $x86_feed; ./genconfig)
|
||||
[ -e $armvirt_feed/genconfig ] &&
|
||||
armvirt=$(cd $armvirt_feed; ./genconfig)
|
||||
[ -e $armsr_feed/genconfig ] &&
|
||||
armsr=$(cd $armsr_feed; ./genconfig)
|
||||
[ -e $mediatek_feed/genconfig ] &&
|
||||
mediatek=$(cd $mediatek_feed; ./genconfig)
|
||||
[ -e $qualcomm_ipq95xx_feed/genconfig ] &&
|
||||
@@ -117,7 +117,7 @@ function genconfig_min {
|
||||
ipq53xx=$(cd $qualcomm_ipq53xx_feed; ./genconfig)
|
||||
|
||||
if [ "$profile" == "LIST" ]; then
|
||||
for list in brcmbca airoha x86 armvirt mediatek ipq95xx ipq53xx; do
|
||||
for list in brcmbca airoha x86 armsr mediatek ipq95xx ipq53xx; do
|
||||
echo "$list based boards:"
|
||||
a=$(echo "${!list}" | sort)
|
||||
for b in $a; do
|
||||
@@ -143,10 +143,10 @@ function genconfig_min {
|
||||
fi
|
||||
done
|
||||
|
||||
for p in $armvirt; do
|
||||
for p in $armsr; do
|
||||
if [ $p == $profile ]; then
|
||||
target="armvirt"
|
||||
target_config_path="$armvirt_feed/config"
|
||||
target="armsr"
|
||||
target_config_path="$armsr_feed/config"
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -10,7 +10,7 @@ PKG_VERSION:=7.2.105
|
||||
LOCAL_DEV=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=78cc1481feff7adc09749e73a3513fae4d9ded28
|
||||
PKG_SOURCE_VERSION:=61b15e0fe345186d36d0ca3212a08f384af3609b
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/libqos.git
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libvoice-airoha
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=1.0.7
|
||||
PKG_VERSION:=1.0.8
|
||||
PKG_LICENSE:=PROPRIETARY
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -17,7 +17,7 @@ LOCAL_DEV=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/$(PKG_NAME).git
|
||||
PKG_SOURCE_VERSION:=5e1befd02c6734ee8b94b7ef54d6171ba1086042
|
||||
PKG_SOURCE_VERSION:=a6a70c7259ba440f7587f4f79d29e8caecafa544
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
endif
|
||||
|
||||
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libvoice-broadcom
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=1.0.5
|
||||
PKG_VERSION:=1.0.6
|
||||
PKG_LICENSE:=PROPRIETARY
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -17,7 +17,7 @@ LOCAL_DEV=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/$(PKG_NAME).git
|
||||
PKG_SOURCE_VERSION:=8c8fa2b70e2bd570deb291478b31fa81a4ab3c1a
|
||||
PKG_SOURCE_VERSION:=14e626db4e8943c100602e6e73e0b1652ff3faca
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
endif
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libwifi
|
||||
PKG_VERSION:=7.4.5
|
||||
PKG_VERSION:=7.4.6
|
||||
|
||||
LOCAL_DEV=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=4e6d4b5510e1fa10b0a75ae3c6f909cbf9c37d41
|
||||
PKG_SOURCE_VERSION:=57348d9a901c33650ebfe8b5d8f35a0b57d12a89
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/libwifi.git
|
||||
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(PKG_SOURCE_VERSION).tar.xz
|
||||
|
||||
@@ -10,6 +10,8 @@ PROG_EXE=/usr/sbin/mcproxy
|
||||
PROG_PARAMS=
|
||||
PROG_PARAMS_SEPARATOR=:
|
||||
|
||||
snooping_bridges=
|
||||
|
||||
|
||||
__device_is_bridge() {
|
||||
local device="$2"
|
||||
@@ -114,10 +116,11 @@ config_mcproxy_interfaces() {
|
||||
|
||||
config_sysfs_mcast_snooping() {
|
||||
local downstreams="$1"
|
||||
local snooping="$2"
|
||||
|
||||
for downstream in $downstreams; do
|
||||
if device_is_bridge "$downstream"; then
|
||||
echo 1 > /sys/class/net/$downstream/bridge/multicast_snooping
|
||||
echo $snooping > /sys/class/net/$downstream/bridge/multicast_snooping
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -136,7 +139,53 @@ config_sysfs_mcast_fastleave() {
|
||||
done
|
||||
}
|
||||
|
||||
config_sysfs_mcast_mode() {
|
||||
config_sysfs_mcast_version() {
|
||||
local protocol="$1"
|
||||
local interfaces="$2"
|
||||
local version="$3"
|
||||
|
||||
for iface in $interfaces; do
|
||||
echo $version > /sys/class/net/$iface/bridge/multicast_"$protocol"_version
|
||||
done
|
||||
}
|
||||
|
||||
config_sysfs_mcast_robustness() {
|
||||
local interfaces="$1"
|
||||
local robustness="$2"
|
||||
|
||||
for iface in $interfaces; do
|
||||
echo $robustness > /sys/class/net/$iface/bridge/multicast_last_member_count
|
||||
done
|
||||
}
|
||||
|
||||
config_sysfs_mcast_query_interval() {
|
||||
local interfaces="$1"
|
||||
local query_interval="$2"
|
||||
|
||||
for iface in $interfaces; do
|
||||
echo $query_interval > /sys/class/net/$iface/bridge/multicast_query_interval
|
||||
done
|
||||
}
|
||||
|
||||
config_sysfs_mcast_q_resp_interval() {
|
||||
local interfaces="$1"
|
||||
local q_resp_interval="$2"
|
||||
|
||||
for iface in $interfaces; do
|
||||
echo $q_resp_interval > /sys/class/net/$iface/bridge/multicast_query_response_interval
|
||||
done
|
||||
}
|
||||
|
||||
config_sysfs_mcast_last_mem_q_int() {
|
||||
local interfaces="$1"
|
||||
local last_mem_q_int="$2"
|
||||
|
||||
for iface in $interfaces; do
|
||||
echo $last_mem_q_int > /sys/class/net/$iface/bridge/multicast_last_member_interval
|
||||
done
|
||||
}
|
||||
|
||||
config_sysfs_mcast_flood() {
|
||||
local downstreams=$1
|
||||
local mcast_mode=$2
|
||||
local prt
|
||||
@@ -157,6 +206,25 @@ config_sysfs_mcast_mode() {
|
||||
done
|
||||
}
|
||||
|
||||
config_snooping_mode() {
|
||||
local interfaces="$1"
|
||||
local snooping="$2"
|
||||
|
||||
# snooping_mode:
|
||||
# 0 - snooping is disabled
|
||||
# 1 - multicast flood is enabled
|
||||
# 2 - multicast flood is disabled
|
||||
[ -z "$snooping_mode" ] && snooping_mode=2
|
||||
|
||||
if [ "$snooping_mode" == 0 ]; then
|
||||
config_sysfs_mcast_snooping "$interfaces" 0
|
||||
else
|
||||
config_sysfs_mcast_snooping "$interfaces" 1
|
||||
fi
|
||||
|
||||
config_sysfs_mcast_flood "$interfaces" "$snooping_mode"
|
||||
}
|
||||
|
||||
config_mcproxy_instance() {
|
||||
local protocol="$1"
|
||||
local version="$2"
|
||||
@@ -195,6 +263,11 @@ config_mcproxy_instance() {
|
||||
upstreams=$igmp_p_up_interfaces
|
||||
downstreams=$igmp_p_down_interfaces
|
||||
mcast_mode=$igmp_p_mode
|
||||
|
||||
# mcproxy reserves two multicast subscriptions for igmp router service groups
|
||||
local mg=$(cat /proc/sys/net/ipv4/igmp_max_memberships)
|
||||
mg=$((mg+2))
|
||||
echo $mg > /proc/sys/net/ipv4/igmp_max_memberships
|
||||
elif [ "$protocol" == "mld" ]; then
|
||||
case "$version" in
|
||||
[1-2])
|
||||
@@ -228,21 +301,98 @@ config_mcproxy_instance() {
|
||||
|
||||
# for snooping to work we should enable it on the bridge, doing it from
|
||||
# here instead of from inside network config
|
||||
config_sysfs_mcast_snooping "$downstreams"
|
||||
[ -n $fast_leave ] &&
|
||||
config_sysfs_mcast_fastleave "$downstreams" "$fast_leave"
|
||||
config_sysfs_mcast_mode "$downstreams" "$mcast_mode"
|
||||
if [ "$downstreams" != "$snooping_bridges" ]; then
|
||||
config_sysfs_mcast_snooping "$downstreams" 1
|
||||
[ -n $fast_leave ] &&
|
||||
config_sysfs_mcast_fastleave "$downstreams" "$fast_leave"
|
||||
config_sysfs_mcast_flood "$downstreams" "$mcast_mode"
|
||||
fi
|
||||
|
||||
PROG_PARAMS="${PROG_PARAMS} -f ${CONFFILE}${PROG_PARAMS_SEPARATOR}"
|
||||
}
|
||||
|
||||
config_snooping() {
|
||||
local protocol="$1"
|
||||
|
||||
local version=
|
||||
local robustness=
|
||||
local query_interval=
|
||||
local q_resp_interval=
|
||||
local last_mem_q_int=
|
||||
local fast_leave=0
|
||||
local snooping_mode=
|
||||
local interfaces=
|
||||
|
||||
local HZ=100
|
||||
|
||||
local all_interfaces=
|
||||
if [ "$protocol" == "igmp" ]; then
|
||||
all_interfaces=$igmp_s_iface
|
||||
elif [ "$protocol" == "mld" ]; then
|
||||
all_interfaces=$mld_s_iface
|
||||
fi
|
||||
for iface in $all_interfaces; do
|
||||
device_is_bridge "$iface" || continue
|
||||
interfaces="$interfaces $iface"
|
||||
done
|
||||
[ -z "$interfaces" ] && return
|
||||
snooping_bridges="$interfaces"
|
||||
|
||||
if [ "$protocol" == "igmp" ]; then
|
||||
case "$igmp_s_version" in
|
||||
[1-3])
|
||||
version="$igmp_s_version"
|
||||
;;
|
||||
*)
|
||||
version="2"
|
||||
;;
|
||||
esac
|
||||
|
||||
robustness=$igmp_s_robustness
|
||||
query_interval=$(( igmp_s_query_interval * HZ ))
|
||||
q_resp_interval=$(( igmp_s_q_resp_interval * HZ / 10 ))
|
||||
last_mem_q_int=$(( igmp_s_last_mem_q_int * HZ / 10 ))
|
||||
fast_leave=$igmp_s_fast_leave
|
||||
snooping_mode=$igmp_s_mode
|
||||
elif [ "$protocol" == "mld" ]; then
|
||||
case "$mld_s_version" in
|
||||
[1-2])
|
||||
version="$mld_s_version"
|
||||
;;
|
||||
*)
|
||||
version="2"
|
||||
;;
|
||||
esac
|
||||
|
||||
robustness=$mld_s_robustness
|
||||
query_interval=$(( mld_s_query_interval * HZ ))
|
||||
q_resp_interval=$(( mld_s_q_resp_interval * HZ / 10 ))
|
||||
last_mem_q_int=$(( mld_s_last_mem_q_int * HZ / 10 ))
|
||||
fast_leave=$mld_s_fast_leave
|
||||
snooping_mode=$mld_s_mode
|
||||
fi
|
||||
|
||||
config_snooping_mode "$interfaces" "$snooping_mode"
|
||||
|
||||
[ -n "$version" ] && config_sysfs_mcast_version "$protocol" "$interfaces" "$version"
|
||||
[ -n "$robustness" ] && config_sysfs_mcast_robustness "$interfaces" "$robustness"
|
||||
[ -n "$query_interval" ] && config_sysfs_mcast_query_interval "$interfaces" "$query_interval"
|
||||
[ -n "$q_resp_interval" ] && config_sysfs_mcast_q_resp_interval "$interfaces" "$q_resp_interval"
|
||||
[ -n "$last_mem_q_int" ] && config_sysfs_mcast_last_mem_q_int "$interfaces" "$last_mem_q_int"
|
||||
[ -n "$fast_leave" ] && config_sysfs_mcast_fastleave "$interfaces" "$fast_leave"
|
||||
}
|
||||
|
||||
config_mcproxy() {
|
||||
if [ "$igmp_p_enable" == "1" ]; then
|
||||
config_mcproxy_instance igmp "$igmp_p_version"
|
||||
elif [ "$igmp_s_enable" == "1" ]; then
|
||||
config_snooping igmp "$igmp_s_version"
|
||||
fi
|
||||
|
||||
if [ "$mld_p_enable" == "1" ]; then
|
||||
config_mcproxy_instance mld "$mld_p_version"
|
||||
elif [ "$mld_s_enable" == "1" ]; then
|
||||
config_snooping mld "$mld_s_version"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -253,11 +403,6 @@ setup_mcast_mode() {
|
||||
configure_mcast() {
|
||||
config_global_params "set_max_groups_and_sources"
|
||||
|
||||
# mcproxy reserves two multicast subscriptions for igmp router service groups
|
||||
local mg=$(cat /proc/sys/net/ipv4/igmp_max_memberships)
|
||||
mg=$((mg+2))
|
||||
echo $mg > /proc/sys/net/ipv4/igmp_max_memberships
|
||||
|
||||
read_mcast_snooping_params
|
||||
read_mcast_proxy_params
|
||||
config_mcproxy
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=obuspa
|
||||
PKG_VERSION:=7.0.4.10
|
||||
PKG_VERSION:=7.0.4.11
|
||||
|
||||
LOCAL_DEV:=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
|
||||
@@ -318,11 +318,9 @@
|
||||
"PERMIT_GET_INST",
|
||||
"PERMIT_OBJ_INFO",
|
||||
"PERMIT_CMD_INFO",
|
||||
"PERMIT_OPER",
|
||||
"PERMIT_SUBS_VAL_CHANGE",
|
||||
"PERMIT_SUBS_OBJ_ADD",
|
||||
"PERMIT_SUBS_OBJ_DEL",
|
||||
"PERMIT_SUBS_EVT_OPER_COMP"
|
||||
"PERMIT_SUBS_OBJ_DEL"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -13,6 +13,7 @@ MAJOR=""
|
||||
POLICER_COUNT=0
|
||||
Q_COUNT=0
|
||||
SP_Q_PRIO=7
|
||||
SOQ_wgt=0
|
||||
|
||||
get_rate_per_queue() {
|
||||
echo "1000000"
|
||||
@@ -22,6 +23,22 @@ get_burst_size_per_queue() {
|
||||
echo "1500"
|
||||
}
|
||||
|
||||
handle_q_weight() {
|
||||
local qid="$1" #queue section ID
|
||||
config_get ifname "$qid" "ifname"
|
||||
# If ifname is empty that is good enough to break
|
||||
if [ -z "$ifname" ];then
|
||||
return
|
||||
fi
|
||||
|
||||
config_get sc_alg "$qid" "scheduling"
|
||||
config_get weight "$qid" "weight"
|
||||
|
||||
if [ "$ifname" == "$2" ] && [ "$sc_alg" == "WRR" ]; then
|
||||
SOQ_wgt=`expr $SOQ_wgt + $weight`
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to handle a queue order and
|
||||
# update total number of queues
|
||||
handle_q_order() {
|
||||
@@ -80,7 +97,8 @@ handle_queue() {
|
||||
local port_bw="$3"
|
||||
local root="$4"
|
||||
local port_bs="$5"
|
||||
local priority=0
|
||||
local par_class="$6"
|
||||
local priority=7
|
||||
config_get is_enable "$qid" "enable"
|
||||
|
||||
# no need to configure disabled queues
|
||||
@@ -120,7 +138,14 @@ handle_queue() {
|
||||
config_get qsize "$qid" "queue_size" 1024
|
||||
|
||||
[ "$rate" == "0" ] && rate="$port_bw"
|
||||
[ "$bs" == "0" ] && bs="$port_bs"
|
||||
|
||||
bs=$(( bs * 8 ))
|
||||
rate_bs=$(( rate * 25 ))
|
||||
if [ $rate_bs -gt $bs ]; then
|
||||
bs=$rate_bs
|
||||
fi
|
||||
# burst size in tc class is given in bytes
|
||||
bs=$(( bs * 1000 ))
|
||||
|
||||
local salg=1
|
||||
|
||||
@@ -135,19 +160,27 @@ handle_queue() {
|
||||
;;
|
||||
esac
|
||||
|
||||
# ignore precedence value in case of WRR, broadcom recommends that WRR queue should
|
||||
# always have precedence value set to 0
|
||||
if [ $salg -ne 2 ]; then
|
||||
priority=$order
|
||||
priority=`expr $priority - $order`
|
||||
|
||||
local ceil_rate=$port_bw
|
||||
if [ "$rate" -lt "$port_bw" ]; then
|
||||
ceil_rate=$rate
|
||||
fi
|
||||
if [ $order -ne 0 ]; then
|
||||
if [ $salg -eq 2 ]; then
|
||||
tc class add dev $port parent ${root}: classid ${root}:$order cbq allot $bs bandwidth ${port_bw}kbit rate ${rate}kbit prio $priority weight $wgt avpkt 1500 bounded isolated
|
||||
else
|
||||
tc class add dev $port parent ${root}: classid ${root}:$order cbq allot $bs bandwidth ${port_bw}kbit rate ${rate}kbit prio $priority avpkt 1500 bounded isolated
|
||||
fi
|
||||
tc filter add dev $port parent ${root}:0 prio $order u32 match mark $order 0xf flowid ${root}:$order
|
||||
|
||||
local cls_priority=`expr $order + 1`
|
||||
cls_priority=${cls_priority}0
|
||||
|
||||
if [ $salg -eq 2 ]; then
|
||||
# maximum quantum value 60000
|
||||
# quantum value calculate based on the configured weight value for the queue
|
||||
quantum=`expr $wgt \* 60000 / $SOQ_wgt`
|
||||
tc class add dev $port parent ${root}:${par_class} classid ${root}:${cls_priority} htb rate ${rate}kbit prio ${priority} ceil ${ceil_rate}kbit quantum ${quantum} burst $bs cburst $port_bs
|
||||
tc qdisc add dev $port parent ${root}:${cls_priority} handle ${cls_priority}: sfq perturb 10
|
||||
else
|
||||
tc class add dev $port parent ${root}:${par_class} classid ${root}:${cls_priority} htb rate ${rate}kbit prio ${priority} ceil ${ceil_rate}kbit burst $bs cburst $port_bs
|
||||
fi
|
||||
tc filter add dev $port parent ${root}:0 prio $order u32 match mark $order 0xf flowid ${root}:${cls_priority}
|
||||
|
||||
Q_COUNT=$((Q_COUNT + 1))
|
||||
}
|
||||
|
||||
@@ -398,10 +431,18 @@ configure_queue() {
|
||||
fi
|
||||
|
||||
rate=$(( rate / 1000 ))
|
||||
|
||||
#burst size is either bitrate*0.00025 or max_packat_size in bit whichever is greater
|
||||
local avg_bs=$(( rate * 25 ))
|
||||
config_get b_size "$sid" "burst_size"
|
||||
if [ "$b_size" == "0" ]; then
|
||||
if [ "$b_size" > "0" ]; then
|
||||
bs="$b_size"
|
||||
fi
|
||||
bs=$(( bs * 8 ))
|
||||
if [ $avg_bs -gt $bs ]; then
|
||||
bs="$avg_bs"
|
||||
fi
|
||||
bs=$(( bs / 1000 ))
|
||||
}
|
||||
local wanport="$(db -q get hw.board.ethernetWanPort)"
|
||||
for interf in $(db -q get hw.board.ethernetPortOrder); do
|
||||
@@ -420,8 +461,15 @@ configure_queue() {
|
||||
rate=$(( link_rate * 1000 ))
|
||||
fi
|
||||
|
||||
# TODO using 1500 as allot and avpkt, if shaper config exist for interf get burst_size of shaper for actual value
|
||||
tc qdisc add dev $interf root handle ${qdisc_idx}: cbq allot $bs avpkt 1500 bandwidth ${rate}kbit
|
||||
p_qdisc_idx=`expr $qdisc_idx + 11`
|
||||
# port shaper needs to add at root tbf qdisc, child class gets token based on rate & burst_size
|
||||
tc qdisc add dev $interf root handle ${p_qdisc_idx}: tbf rate ${rate}kbit burst ${bs}k limit 1M
|
||||
tc qdisc add dev $interf parent ${p_qdisc_idx}: handle ${qdisc_idx}: htb default 10
|
||||
|
||||
local par_class=1
|
||||
tc class add dev $interf parent ${qdisc_idx}: classid ${qdisc_idx}:$par_class htb rate ${rate}kbit prio 8 ceil ${rate}kbit
|
||||
tc filter add dev $interf parent ${qdisc_idx}:0 matchall flowid ${qdisc_idx}:$par_class
|
||||
|
||||
# if qdisc_idx is the index corresponds to WAN port, then
|
||||
# it would be the MAJOR portion of the destination class ID.
|
||||
# under the same qdisc. We are programming for WAN port only.
|
||||
@@ -429,7 +477,11 @@ configure_queue() {
|
||||
MAJOR="$qdisc_idx"
|
||||
fi
|
||||
|
||||
config_foreach handle_queue queue $interf $rate $qdisc_idx $bs
|
||||
#calculate sum of queue weight, to derive the quantum value
|
||||
SOQ_wgt=0
|
||||
config_foreach handle_q_weight queue $interf
|
||||
|
||||
config_foreach handle_queue queue $interf $rate $qdisc_idx $bs $par_class
|
||||
done
|
||||
}
|
||||
|
||||
@@ -453,11 +505,11 @@ configure_policer() {
|
||||
configure_qos() {
|
||||
pre_configure_queue
|
||||
configure_queue
|
||||
configure_policer
|
||||
configure_classify
|
||||
if [ -f "/tmp/qos/classify.ebtables" ]; then
|
||||
sh /tmp/qos/classify.ebtables
|
||||
fi
|
||||
configure_policer
|
||||
}
|
||||
|
||||
reload_qos() {
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=sulu-base
|
||||
PKG_VERSION:=3.1.16
|
||||
PKG_VERSION:=3.1.20
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu.git
|
||||
PKG_SOURCE_VERSION:=f620f0b2ee08d600b615fd8d13f202bcffc3f922
|
||||
PKG_SOURCE_VERSION:=d0a66a83f93e33a3ea3a9249d6504295625339ad
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
SULU_MOD:=core
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=sulu-builder
|
||||
PKG_VERSION:=3.1.16
|
||||
PKG_VERSION:=3.1.20
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu-builder.git
|
||||
PKG_SOURCE_VERSION:=d33ca6297222ebbafbb99c7e56b7d492e844e360
|
||||
PKG_SOURCE_VERSION:=b301cab8e06eccc0ebdf5e3d0f3b53fa3dd59d5f
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/sulu-$(PKG_VERSION)/sulu-builder-$(PKG_SOURCE_VERSION)
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=sulu-multi-ap
|
||||
PKG_VERSION:=3.1.16
|
||||
PKG_VERSION:=3.1.18
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu-multi-ap.git
|
||||
PKG_SOURCE_VERSION:=b7868dabc39b187e5da09878087fe5eb31d9f00f
|
||||
PKG_SOURCE_VERSION:=c3d4e8bdf54fba79d3253c4a92c46ce867bd71ef
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
include ../sulu-builder/sulu.mk
|
||||
|
||||
4
tr104/Config.in
Normal file
4
tr104/Config.in
Normal file
@@ -0,0 +1,4 @@
|
||||
config TR104_DOTSO_PLUGIN
|
||||
bool "Use bbfdm DotSO plugin backend to provide TR104 and extension datamodel"
|
||||
depends on PACKAGE_tr104
|
||||
default n
|
||||
@@ -11,7 +11,7 @@ LOCAL_DEV:=0
|
||||
ifeq ($(LOCAL_DEV),0)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/voice/tr104.git
|
||||
PKG_SOURCE_VERSION:=63a9876a4f7f030bac433fc44427884e7e97baf5
|
||||
PKG_SOURCE_VERSION:=cd0c5d1f4a8489e3d93b5cf433f8f0df638bf62b
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
endif
|
||||
@@ -21,12 +21,14 @@ PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
include ../bbfdm/bbfdm.mk
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
SUBMENU:=TRx69
|
||||
TITLE:=TR104 Datamodel Daemon
|
||||
MENU:=1
|
||||
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +asterisk
|
||||
endef
|
||||
|
||||
@@ -34,8 +36,13 @@ define Package/$(PKG_NAME)/description
|
||||
TR104 datamodel daemon
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
endef
|
||||
|
||||
CMAKE_OPTIONS += \
|
||||
-DBBF_VENDOR_PREFIX:String="$(CONFIG_BBF_VENDOR_PREFIX)" \
|
||||
-DDAEMON_JSON_INPUT:String="/etc/tr104/input.json" \
|
||||
-DDM_ENABLE_UBUS=ON
|
||||
|
||||
ifeq ($(LOCAL_DEV),1)
|
||||
@@ -46,10 +53,18 @@ endif
|
||||
|
||||
define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_DIR) $(1)/etc/tr104d
|
||||
ifeq ($(CONFIG_TR104_DOTSO_PLUGIN),y)
|
||||
$(call BbfdmInstallPlugin,$(1),$(PKG_BUILD_DIR)/libdm/tr104/libtr104.so)
|
||||
$(call BbfdmInstallPlugin,$(1),$(PKG_BUILD_DIR)/libdm/tr104_ext/libtr104ext.so)
|
||||
else
|
||||
$(INSTALL_DIR) $(1)/etc/tr104/plugins/
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/daemon/ubus/tr104d $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libdm/tr104/libtr104.so $(1)/etc/tr104/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libdm/tr104_ext/libtr104ext.so $(1)/etc/tr104/plugins/
|
||||
$(INSTALL_BIN) ./files/etc/init.d/tr104d $(1)/etc/init.d/
|
||||
$(INSTALL_BIN) ./files/etc/tr104/input.json $(1)/etc/tr104/input.json
|
||||
endif
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
||||
|
||||
@@ -14,7 +14,9 @@ log() {
|
||||
start_service()
|
||||
{
|
||||
procd_open_instance "tr104d"
|
||||
|
||||
procd_set_param command ${PROG}
|
||||
procd_append_param command -m "/etc/tr104/input.json"
|
||||
|
||||
procd_set_param stdout 1
|
||||
procd_set_param stderr 1
|
||||
|
||||
34
tr104/files/etc/tr104/input.json
Executable file
34
tr104/files/etc/tr104/input.json
Executable file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"daemon": {
|
||||
"config": {
|
||||
"loglevel": "1",
|
||||
"refresh_time": "10",
|
||||
"transaction_timeout": "30"
|
||||
},
|
||||
"input": {
|
||||
"type": "DotSo",
|
||||
"name": "/etc/tr104/libtr104.so",
|
||||
"plugin_dir": "/etc/tr104/plugins/"
|
||||
},
|
||||
"output": {
|
||||
"type": "UBUS",
|
||||
"name": "tr104",
|
||||
"parent_dm": "Device.Services.",
|
||||
"object": "VoiceService",
|
||||
"root_obj": "bbfdm"
|
||||
}
|
||||
},
|
||||
"cli": {
|
||||
"config": {
|
||||
"proto": "both",
|
||||
"instance_mode": 0
|
||||
},
|
||||
"input": {
|
||||
"type": "UBUS",
|
||||
"name": "tr104"
|
||||
},
|
||||
"output": {
|
||||
"type": "CLI"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=voicemngr
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=1.0.11
|
||||
PKG_VERSION:=1.0.12
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -19,7 +19,7 @@ LOCAL_DEV=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/$(PKG_NAME).git
|
||||
PKG_SOURCE_VERSION:=e5337092bd620d749d0380f635a9a0c99d4cbe2d
|
||||
PKG_SOURCE_VERSION:=774409486a4afdcff5ca0d31c1a2f8088bd55015
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
PKG_MIRROR_HASH:=skip
|
||||
endif
|
||||
|
||||
@@ -9,7 +9,7 @@ NAME=voicemngr
|
||||
start_service() {
|
||||
[ "$(db -q get hw.board.hasVoice)" = "1" ] || return
|
||||
|
||||
[ -d "/usr/lib/broadcom" ] && BCM_LIBS=LD_LIBRARY_PATH=/usr/lib/broadcom
|
||||
[ -d "/usr/lib/broadcom" ] && BCM_LIBS=LD_LIBRARY_PATH=/lib/broadcom:/usr/lib/broadcom
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param env hw_board_hasDect="$(db get hw.board.hasDect)" \
|
||||
|
||||
Reference in New Issue
Block a user