Skip to content
Snippets Groups Projects
Commit 75a10b5f authored by Yalu Zhang's avatar Yalu Zhang
Browse files

Add dsl-cpe-fapi and related packages

parent 0751296c
No related branches found
No related tags found
No related merge requests found
Showing
with 5082 additions and 0 deletions
menu "Configuration"
depends on PACKAGE_dsl-cpe-fapi
config dsl-cpe-fapi_FAPI_DAEMON
bool "Support CLI application"
default n
endmenu
#
# Copyright (C) 2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=dsl-cpe-fapi
PKG_VERSION:=0.6.1
PKG_MD5SUM:=4d24f6163e6c2ba53222872bf7019198
PKG_BASE_NAME:=dsl_cpe_fapi
PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=git@dev.iopsys.eu:intel/$(PKG_NAME).git
LANTIQ_BIN_DIR=/$(VENDOR_PATH)/bin
PKG_FIXUP:=autoreconf
PKG_FIXUP:=libtool
PKG_INSTALL:=1
-include $(INCLUDE_DIR)/package-version-override.mk
include $(INCLUDE_DIR)/package.mk
ifeq ($(findstring intel,$(VENDOR_PATH)),intel)
#UGW8 onwards
$(call include_mk, ugw-loglevel.mk)
else
-include $(INCLUDE_DIR)/ugw-loglevel.mk
endif
# Get config values from general image config or other packages in dependency list
# Definition of these values will be overtaken from package 'dsl-cpe-mei-vrx'
# Set default config values if necessary (not defined before)
define Package/$(PKG_NAME)
CATEGORY:=Lantiq
SUBMENU:=DSL Subsystem
TITLE:=DSL CPE FAPI shared lib
URL:=http://www.lantiq.com/
MAINTAINER:=Lantiq Beteiligungs-GmbH & Co. KG
DEPENDS:= +libugwhelper +libpthread +librt +lib-cli +dsl-cpe-control-vrx +libscapi +system_fapi
MENU:=1
endef
define Package/$(PKG_NAME)/description
This package contains the DSL CPE FAPI.
endef
define Package/$(PKG_NAME)/config
$(call Package/$(PKG_NAME)/override_version)
$(call Package/$(PKG_NAME)/override_source_path)
$(call Package/$(PKG_NAME)/config_debug_level)
source "$(SOURCE)/Config.in"
endef
CONFIGURE_ARGS += \
--enable-vrx \
--enable-driver-include="-I$(STAGING_DIR)/usr/include/drv_dsl_cpe_api" \
--enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos" \
--enable-ifxos-library="-L$(STAGING_DIR)/usr/lib" \
--enable-dsl-fapi-include="-I$(STAGING_DIR)/usr/include/dsl-fapi" \
--enable-dsl-fapi-library="-L$(STAGING_DIR)/usr/lib" \
--enable-cli \
--enable-cli-include="-I$(STAGING_DIR)/usr/include/cli" \
--enable-cli-library="-L$(STAGING_DIR)/usr/lib" \
ifeq ($(CONFIG_dsl-cpe-fapi_FAPI_DAEMON),y)
CONFIGURE_ARGS += --enable-dsl-fapi-daemon=yes
else
CONFIGURE_ARGS += --enable-dsl-fapi-daemon=no
endif
TARGET_CFLAGS += -I$(LINUX_DIR)/user_headers/include/net/ -I$(LINUX_DIR)/user_headers/include/ -I$(LINUX_DIR)/include/
ifeq ($(CONFIG_USE_MUSL),y)
TARGET_CFLAGS += -DCONFIG_USE_MUSL
endif
define Build/Configure
# remove "configured" stamps of other configs
@- rm $(PKG_BUILD_DIR)/.configured*
$(call Build/Configure/Default)
endef
define Build/Clean
@- rm -Rf $(PKG_BUILD_DIR)/ipkg*
@- [ -e $(PKG_BUILD_DIR)/Makefile ] && $(MAKE) -C $(PKG_BUILD_DIR) clean
$(call Build/Clean/Default)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/{lib,include/dsl-fapi}
$(INSTALL_BIN) $(PKG_BUILD_DIR)/include/* $(1)/usr/include/dsl-fapi
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/dsl_fapi_config.h $(1)/usr/include/dsl-fapi
mkdir -p $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/*.{a,la,so*} $(1)/usr/lib/
endef
define Build/UninstallDev
- rm -f $(1)/usr/lib/libdslfapi*.*
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib
cd $(1)/usr/lib && rm -f "libdslfapi.so.0" && ln -s "../../$(VENDOR_PATH)/usr/lib/libdslfapi.so" "libdslfapi.so.0"
$(INSTALL_DIR) $(1)/$(VENDOR_PATH)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libdslfapi.so $(1)/$(VENDOR_PATH)/usr/lib/
$(INSTALL_DIR) $(1)/$(LANTIQ_BIN_DIR)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dsl_fapid $(1)/$(LANTIQ_BIN_DIR)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dsl_fapi_pipe.sh $(1)/$(LANTIQ_BIN_DIR)
$(INSTALL_BIN) ./files/dsl_fapi.cfg $(1)/$(LANTIQ_BIN_DIR)
$(INSTALL_DIR) $(STAGING_DIR)/usr/docs
$(CP) $(PKG_BUILD_DIR)/include/dsl_fapi.h $(STAGING_DIR)/usr/docs/.
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
X_LANTIQ_COM_BitswapUs_V, 1
X_LANTIQ_COM_BitswapUs_A, 1
X_LANTIQ_COM_BitswapDs_V, 0
X_LANTIQ_COM_BitswapDs_A, 0
X_LANTIQ_COM_LinkEncapsulationConfig, G.992.3_Annex_K_ATM,G.992.3_Annex_K_PTM,G.993.2_Annex_K_PTM
X_LANTIQ_COM_ReTxUs, 1
X_LANTIQ_COM_ReTxDs_V, 0
X_LANTIQ_COM_ReTxDs_A, 0
X_LANTIQ_COM_SraUs_V, 1
X_LANTIQ_COM_SraUs_A, 0
X_LANTIQ_COM_SraDs_V, 1
X_LANTIQ_COM_SraDs_A, 0
X_LANTIQ_COM_XTSE, 0x5 0x0 0x4 0x0 0xC 0x1 0x0 0x7
X_LANTIQ_COM_VirtualNoiseUs, 1
X_LANTIQ_COM_VirtualNoiseDs, 0
X_LANTIQ_COM_Vectoring, Auto
X_LANTIQ_COM_DSLNextMode, VDSL
X_LANTIQ_COM_DSLActSeq, StandardGHS
X_LANTIQ_COM_DSLActMode, GHS
X_LANTIQ_COM_DSLRemember, 1
#
# Copyright (C) 2009 OpenWrt.org
# Copyright (C) 2017 Intel Corporation
#
# Openwrt Makefile for system_fapi
#
#
#### Includes ###################################
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
#### Package Info ###############################
PKG_NAME:=system_fapi
PKG_SOURCE_VERSION:=1.1.8.10
PKG_SOURCE_PROTO:=git
PKG_SOURCE_NAME:=system_service
PKG_SOURCE_INNERDIR:=fapi_system_src
PKG_SOURCE_URL:=ssh://git@gts-chd.intel.com:29418/sw_ugw/$(PKG_SOURCE_NAME).git
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_MAINTAINER:=Intel
PKG_LICENSE:=Intel
include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/package-version-override.mk
$(call include_mk, ugw-loglevel.mk)
define Package/$(PKG_NAME)
SECTION:=libs
CATEGORY:=Intel
SUBMENU:=UGW Functional APIs
TITLE:=UGW System Configuration FAPI
URL:=http://www.intel.com
MAINTAINER:=Intel Corporation
DEPENDS:= +libscapi +libsafec
MENU:=1
endef
define Package/$(PKG_NAME)/description
Intel UGW FAPI for System Configuration
endef
#### Exports ####################################
export LINUX_KARCH TARGET_CONFIGURE_OPTS LINUX_DIR PKG_BUILD_DIR
### Menuconfig ##################################
define Package/$(PKG_NAME)/config
$(call Package/$(PKG_NAME)/override_version)
$(call Package/$(PKG_NAME)/override_source_path)
$(call Package/$(PKG_NAME)/config_debug_level)
endef
TARGET_CFLAGS += -I$(LINUX_DIR)/user_headers/include/net/ \
-I$(LINUX_DIR)/user_headers/include/ \
-I$(LINUX_DIR)/include/ \
-I$(STAGING_DIR)/usr/include/ \
-DCONFIG_LTQ_PPA_IPv6_ENABLE \
-DCONFIG_LTQ_PPA_QOS \
-DCONFIG_LTQ_PPA_QOS_WFQ \
-DCONFIG_LTQ_PPA_QOS_RATE_SHAPING \
-DCONFIG_LTQ_PPA_HAL_SELECTOR \
-DCONFIG_LTQ_PPA_API_SW_FASTPATH
ifeq ($(CONFIG_PACKAGE_kmod-lantiq-swaccel),y)
TARGET_CFLAGS += -DCONFIG_LTQ_PPA_API_SW_FASTPATH
endif
ifeq ($(CONFIG_PACKAGE_kmod-toe_drv),y)
TARGET_CFLAGS += -DCONFIG_INTEL_TRAFFIC_OFFLOAD_ENGINE
endif
ifeq ($(CONFIG_PACKAGE_kmod-directconnect_dp),y)
TARGET_CFLAGS += -DCONFIG_DC_DATAPATH_FRAMEWORK
endif
ifeq ($(CONFIG_PACKAGE_switch_cli),y)
TARGET_CFLAGS +=-DCONFIG_LANTIQ_SWITCH
endif
ifeq ($(CONFIG_PACKAGE_switch_cli_ugw8),y)
TARGET_CFLAGS +=-DCONFIG_LANTIQ_SWITCH
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx200),y)
TARGET_CFLAGS +=-DPLATFORM_XRX200
export PLATFORM_XRX200=1
endif
ifeq ($(strip $(CONFIG_TARGET_lantiq_xrx200_EASY220W2)),y)
TARGET_CFLAGS +=-DPLATFORM_XRX200_EASY220W2
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx330),y)
TARGET_CFLAGS +=-DPLATFORM_XRX330
export PLATFORM_XRX330=1
ifeq ($(strip $(CONFIG_TARGET_lantiq_xrx330_EASY300_AC1200)),y)
TARGET_CFLAGS +=-DPLATFORM_XRX330_EASY300_AC1200
endif
ifeq ($(strip $(CONFIG_TARGET_lantiq_xrx330_EASY330_AC1200_35B)),y)
TARGET_CFLAGS +=-DPLATFORM_XRX330_EASY300_AC1200
endif
ifeq ($(strip $(CONFIG_TARGET_lantiq_xrx330_EASY330_RT)),y)
TARGET_CFLAGS +=-DPLATFORM_XRX330_EASY330_RT
endif
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx300),y)
TARGET_CFLAGS +=-DPLATFORM_XRX300
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx500),y)
TARGET_CFLAGS +=-DCONFIG_LTQ_PPA_HAL_SELECTOR -DCONFIG_LTQ_PPA_GRX500 -DCONFIG_LTQ_TARGET_GRX500 -DPLATFORM_XRX500
export PLATFORM_XRX500=1
endif
ifeq ($(CONFIG_TARGET_intel_mips_xrx500),y)
TARGET_CFLAGS +=-DCONFIG_LTQ_PPA_HAL_SELECTOR -DCONFIG_LTQ_PPA_GRX500 -DCONFIG_LTQ_TARGET_GRX500 -DPLATFORM_XRX500
export PLATFORM_XRX500=1
endif
ifeq ($(CONFIG_TARGET_intel_xway_xrx500),y)
TARGET_CFLAGS +=-DCONFIG_LTQ_PPA_HAL_SELECTOR -DCONFIG_LTQ_PPA_GRX500 -DCONFIG_LTQ_TARGET_GRX500 -DPLATFORM_XRX500
export PLATFORM_XRX500=1
endif
ifeq ($(CONFIG_TARGET_intel_xway_xrx500_4kec),y)
TARGET_CFLAGS +=-DCONFIG_LTQ_PPA_HAL_SELECTOR -DCONFIG_LTQ_PPA_GRX500 -DCONFIG_LTQ_TARGET_GRX500 -DPLATFORM_XRX500
export PLATFORM_XRX500=1
endif
ifeq ($(CONFIG_TARGET_intel_x86),y)
TARGET_CFLAGS += -DNO_PPA
TARGET_CFLAGS += -DPLATFORM_XRX750
export PLATFORM_XRX750=1
endif
ifeq ($(CONFIG_PACKAGE_kmod-lan_port_separation),y)
TARGET_CFLAGS +=-DENABLE_LAN_PORT_SEPARATION
endif
ifeq ($(CONFIG_PACKAGE_kmod-gphy_event),y)
TARGET_CFLAGS +=-DENABLE_LAN_PORT_LINK_EVENT
endif
ifeq ($(CONFIG_PACKAGE_kmod-vrx518-dp-mod),y)
TARGET_CFLAGS += -DCONFIG_VRX518_SUPPORT
endif
ifeq ($(CONFIG_PACKAGE_ltq_vrx320_datapath_drv),y)
TARGET_CFLAGS +=-DCONFIG_VRX320_SUPPORT
endif
ifeq ($(CONFIG_VRX320_PTM_VECTORING),y)
TARGET_CFLAGS +=-DCONFIG_VRX320_PTM_VECTORING_SUPPORT
endif
ifeq ($(CONFIG_FEATURE_SESSION_LIMIT),y)
TARGET_CFLAGS +=-DCONFIG_LTQ_PPA_HANDLE_CONNTRACK_SESSIONS
endif
ifeq ($(CONFIG_PACKAGE_kmod-pp_crypto_drv),y)
EXTRA_CFLAGS += -DCONFIG_IPSEC_SUPPORT
endif
ifeq ($(CONFIG_FEATURE_WWAN_LTE_SUPPORT),y)
EXTRA_CFLAGS += -DCONFIG_WWAN_LTE_SUPPORT
endif
ifeq ($(CONFIG_PACKAGE_kmod-l2nat),y)
EXTRA_CFLAGS += -DCONFIG_L2NAT_SUPPORT
endif
ifeq ($(CONFIG_USE_MUSL),y)
TARGET_CFLAGS += -DCONFIG_USE_MUSL
endif
TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib/ppa_api/ \
-L$(LINUX_DIR)/user_headers/include/net/
#### Target Rules ###############################
# To Staging Dir
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/docs/
$(CP) $(PKG_BUILD_DIR)/include/fapi_processorstat.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/include/fapi_sys_common.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/include/ppa_api_local.h $(1)/usr/include/
ifeq ($(CONFIG_TARGET_lantiq_xrx200),y)
$(CP) $(PKG_BUILD_DIR)/xRX220/xRX220_callback.h $(1)/usr/include/
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx500),y)
$(CP) $(PKG_BUILD_DIR)/xRX350/xRX350_callback.h $(1)/usr/include/
endif
ifeq ($(CONFIG_TARGET_intel_xway_xrx500),y)
$(CP) $(PKG_BUILD_DIR)/xRX350/xRX350_callback.h $(1)/usr/include/
endif
ifeq ($(CONFIG_TARGET_intel_xway_xrx500_4kec),y)
$(CP) $(PKG_BUILD_DIR)/xRX350/xRX350_callback.h $(1)/usr/include/
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx330),y)
$(CP) $(PKG_BUILD_DIR)/xRX330/xRX330_callback.h $(1)/usr/include/
endif
$(CP) $(PKG_BUILD_DIR)/include/fapi_led.h $(1)/usr/include/
$(CP) $(PKG_BUILD_DIR)/include/fapi_sys_common.h $(1)/usr/docs/
$(CP) $(PKG_BUILD_DIR)/include/fapi_led.h $(1)/usr/docs/
$(CP) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib/
endef
# To ipkg / Rootfs
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/$(VENDOR_PATH)/usr/lib
ifeq ($(CONFIG_TARGET_lantiq_xrx200),y)
$(INSTALL_DIR) $(1)/$(VENDOR_PATH)/etc/
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx330),y)
$(INSTALL_DIR) $(1)/$(VENDOR_PATH)/etc/
endif
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libsysfapi.so $(1)/$(VENDOR_PATH)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libethfapi.so $(1)/$(VENDOR_PATH)/usr/lib/
ifneq ($(CONFIG_LANTIQ_OPENWRT_FIRMWARE),y)
ifeq ($(CONFIG_TARGET_lantiq_xrx200),y)
$(CP) ./files/etc/* $(1)/$(VENDOR_PATH)/etc/
endif
ifeq ($(CONFIG_TARGET_lantiq_xrx330),y)
$(CP) ./files/etc/* $(1)/$(VENDOR_PATH)/etc/
endif
endif
endef
define Build/Clean
if [ -d $(PKG_BUILD_DIR) ]; then $(MAKE) -C $(PKG_BUILD_DIR) clean; \
$(RM) -r $(PKG_BUILD_DIR)/ipkg-$(BOARD); fi
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
#!/bin/sh
if [ ! "$CONFIGLOADED" ]; then
if [ -r /etc/rc.d/config.sh ]; then
. /etc/rc.d/config.sh 2>/dev/null
CONFIGLOADED="1"
fi
fi
local wanintf
local lan
local brname
local action
wanintf=$1
lan=$2
brname=$3
action=$4
#if [ "$intf" = "ra0" -o "$intf" = "wlan" -o "$intf" = "ath" ]; then
#if [ "$1" = "wlan0" -o "$1" = "ath0" -o "$1" = "ra0" ]; then
#add switch config to accelerate wlan traffic
# enable_bridge_accel 0 $intf $brname
#else
iface=$(echo $wanintf | cut -d "_" -f1)
if [ "${iface::3}" = "nas" ]; then
. ${VENDOR_PATH}/etc/switch_functions "dsl" 2> /dev/null
elif [ "$iface" = "ptm0" ]; then
. ${VENDOR_PATH}/etc/switch_functions "dsl" 2> /dev/null
elif [ "$iface" = "eth1" ]; then
. ${VENDOR_PATH}/etc/switch_functions "eth" 2> /dev/null
fi
if [ "$action" = "enable" ]; then
echo disable > /proc/ppa/api/bridged_flow_learning
killall dnsmasq
#add switch config to accelerate lan-wan traffic
enable_bridge_accel $wanintf $lan $brname
elif [ "$action" = "disable" ]; then
#add switch config to accelerate lan-wan traffic
disable_bridge_accel $wanintf $lan
echo enable > /proc/ppa/api/bridged_flow_learning
#dnsmasq
elif [ "$action" = "bridge_add" ]; then
#local lanif
if [ ! "$lan" == "-" ] ; then
${VENDOR_PATH}/etc/vrx220_multi_bridge_config ADD "$lan"
fi
#if [ ! $wanintf == "-" ] ; then
# echo disable > /proc/ppa/api/bridged_flow_learning
# killall dnsmasq
# for i in $lan ; do
# if [ "$i" = "5" ] ; then
# lanif="$lanif eth0_1"
# elif [ "$i" = "2" ] ; then
# lanif="$lanif eth0_2"
# elif [ "$i" = "3" ] ; then
# lanif="$lanif eth0_3"
# fi
# enable_bridge_accel $wanintf $lan $brname
#fi
elif [ "$action" = "bridge_del" ]; then
#if [ ! $wanintf == "-" ] ; then
# disable_bridge_accel $wanintf $lan
#fi
if [ ! "$lan" == "-" ] ; then
${VENDOR_PATH}/etc/vrx220_multi_bridge_config DEL "$lan"
fi
elif [ "$action" = "bridge_mod" ]; then
if [ ! "$lan" == "-" ] ; then
${VENDOR_PATH}/etc/vrx220_multi_bridge_config MOD "$lan"
fi
fi
#!/bin/sh
echo disable > /proc/ppa/api/bridged_flow_learning
#!/bin/sh
if [ ! "$CONFIGLOADED" ]; then
if [ -r /etc/rc.d/config.sh ]; then
. /etc/rc.d/config.sh 2>/dev/null
CONFIGLOADED="1"
fi
fi
. ${VENDOR_PATH}/etc/switchports.conf 2> /dev/null
echo "===Enable lan port seperation for $switch_lan_ports==="
if [ -n "$switch_lan_ports" ]; then
lan_port=$switch_lan_ports
else
lan_port="4 5"
fi
brctl delif br-lan eth0
i=1
for port in $lan_port; do
echo "adding interface eth0_${i}"
eval interface_name=eth0_${i}
ip link add dev $interface_name link eth0 type ethsw ports $port
# interfaces are brought up later on by SLs, not required here
#ifconfig $interface_name 0.0.0.0 up
#brctl addif br-lan $interface_name
i=`expr $i \+ 1`
done
This diff is collapsed.
#!/bin/sh
if [ ! "$CONFIGLOADED" ]; then
if [ -r /etc/config.sh ]; then
. /etc/config.sh 2>/dev/null
CONFIGLOADED="1"
fi
fi
. ${VENDOR_PATH}/etc/switchports.conf 2> /dev/null
. ${VENDOR_PATH}/etc/switch_functions $1 2 > /dev/null
###############################################################################################################
#Initializes the Switch ports for the selected WAN mode
# ALL LAN ports will be set with PVID 501
# ALL LAN ports, WLAN ports and CPU port will be member of VLAN 501
# ALL WAN ports will be set with PVID 502
# ALL WAN ports and CPU port will be member of VLAN 502
# CPU Port will be set with PVID 500
# ALL LAN ports, WLAN Ports, WAN ports & CPU port will be member of VLAN 500
###############################################################################################################
echo "======SWITCH INIT ==============="
local maxPacketLen=1536
output=`switch_cli dev=$CONFIG_SWITCH_DEVICE_ID IFX_ETHSW_VLAN_PORT_CFG_GET nPortId=$lan_port_1| grep -w nPortVId | awk '{ print $2 }'`
if [ $output = $lan_vid_all -o $output = $lan_vid_port_start ]; then
switch_uninit
fi
switch_cli dev=$CONFIG_SWITCH_DEVICE_ID IFX_ETHSW_DISABLE
if [ "$CONFIG_FEATURE_MINI_JUMBO_FRAMES" == "1" ] ; then
#
# When mini jumbo frames feature is enabled the larger size packets should
# pass through switch. Default packet len configured in switch is 1536. In
# case of mini jumbo frames switch shall support packets upto 1600 bytes.
#
maxPacketLen=1600
fi
switch_cli dev=$CONFIG_SWITCH_DEVICE_ID IFX_ETHSW_CFG_SET eMAC_TableAgeTimer=3 bVLAN_Aware=1 \
nMaxPacketLen=$maxPacketLen bPauseMAC_ModeSrc=0 nPauseMAC_Src=00:00:00:00:00:00
#create the VLAN id
create_vlanid $wan_vid $wan_fid
create_vlanid $cpu_vid $cpu_fid
create_vlanid $lan_vid_all $lan_fid
# Setting the PVID 502 for WAN ports
# TVM is set to 0 in case of ETH WAN port and 1 in case of xDSL WAN port; because ATM and PTM will have some VLANs which is used internally by PPA
# That means if a tagged packet comes from wan side we must have corresponding VLAN created in Switch which has both WAN port and CPU port as member and
# egress tagging enabled on CPU port for that VLAN.
for i in $wan_port; do
if [ $i = $wan_port_mii1 ]; then
#for ethwan we need to set TVM of wanport to 0
#if [ "$CONFIG_FEATURE_EEE" = "1" ]; then
# switch_cli IFX_ETHSW_PORT_LINK_CFG_SET nPortId=$i bLPI=1
#fi
config_port_pvid $i $wan_vid 0 3
else
config_port_pvid $i $wan_vid 1 3
fi
done
# Setting PVID of CPU port as 500
config_port_pvid $cpu_port $cpu_vid 0 2
# Setting PVID of LAN ports as 501
for i in $lan_port_all; do
config_port_pvid $i $lan_vid_all 1 3
done
# ALL LAN ports, WLAN Ports, WAN ports & CPU port will be member of CPU VLAN 500
for i in $lan_port_all $cpu_port $wan_port; do
config_port_member $cpu_vid $i 0
done
# ALL LAN ports, WLAN ports and CPU port will be member of VLAN 501
for i in $lan_port_all $cpu_port; do
config_port_member $lan_vid_all $i 0
done
# ALL WAN ports and CPU port will be member of VLAN 502
for i in $wan_port $cpu_port; do
config_port_member $wan_vid $i 0
done
switch_cli dev=$CONFIG_SWITCH_DEVICE_ID IFX_ETHSW_ENABLE
#if [ "$CONFIG_FEATURE_EEE" = "1" ]; then
#for i in $lan_port_all; do
# switch_cli IFX_ETHSW_PORT_LINK_CFG_SET nPortId=$i bLPI=1
#done
#fi
# spilt the lan and wan interrupts (DMA channels)
# split_lan_wan_dma_channel 1
mii1_reg="$((1 << wan_port_mii1))"
# Disable pause frame for cpu port
switch_cli IFX_FLOW_REGISTER_SET nRegAddr=0x94b nData=0x1c0
if [ "$1" = "eth" ]; then
switch_cli IFX_FLOW_REGISTER_SET nRegAddr=0xccd nData=$mii1_reg
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
fi
# Configure reserved buffers and global WRED configuration for GRX330 platform
init_sw_cfg_for_grx330_plat
#configure leds for grx330/300
config_led
echo "Switch Init done "
#switch_cli dev=$CONFIG_SWITCH_DEVICE_ID IFX_ETHSW_VLAN_PORT_MEMBER_READ
#!/bin/sh
#$1 operation ADD DEL MOD
#$2 portid
if [ ! "$CONFIGLOADED" ]; then
if [ -r /etc/config.sh ]; then
. /etc/config.sh 2>/dev/null
CONFIGLOADED="1"
fi
fi
# this script will use only vlan related cofiguration, hence not passing wan mode.
. ${VENDOR_PATH}/etc/switch_functions 2> /dev/null
switch_cli IFX_ETHSW_VLAN_PORT_MEMBER_READ > /tmp/switch.txt
sed -i -e 's/ VLAN ID | Port | Tag Member//g' /tmp/switch.txt
sed -i -e 's/----------------------------//g' /tmp/switch.txt
sed -i -e 's/---//g' /tmp/switch.txt
sed 's/^[ \t]*//;s/[ \t]*$//' < /tmp/switch.txt > /tmp/switch1.txt
__preVlanId=0
map=
NextVlan=500
flag="notfound"
cpuport=6
#common in both DEL and ADD case.
rmflag=0
while read p; do
[ -z "$p" ] && continue
__vlanId=`echo $p | awk '{print $1;}'`
__portId=`echo $p | awk '{print $3;}'`
if [ $__preVlanId != $__vlanId ] ; then
map="$map $__vlanId"
else
if [ $__portId != $cpuport ] ; then
rmflag=1
fi
fi
if [ $__vlanId != "500" ] ; then
for i in $2
do
if [ $__portId == $i ] ; then
reset_port_member $__vlanId $__portId
if [ $__vlanId != "501" ] && [ $1 != "MOD" ] && [ $rmflag != "1" ] ; then
reset_port_member $__vlanId $cpuport #cpu port
fi
fi
done
fi
__preVlanId="$__vlanId"
done < /tmp/switch1.txt
#if [ $1 == "DEL" ] ; then
# config_port_member 501 $2 0 # adding backto base bridge
# switch_cli IFX_ETHSW_VLAN_PORT_MEMBER_ADD nVId=501 nPortId=$2
#fi
i=0
j=0
if [ $1 == "ADD" ] ; then
while : ; do
for i in $map
do
if [ "$NextVlan" == "$i" ] ; then
flag="found"
break
fi
done
if [ "$flag" == "found" ] ; then
flag="notfound"
else
break
fi
NextVlan=$((NextVlan+1))
done
nFId=`echo -n $NextVlan | tail -c 1`
if ! switch_cli IFX_ETHSW_VLAN_ID_GET nVId=$NextVlan &> /dev/null; then
create_vlanid $NextVlan $nFId #lan fid
fi
for j in $2
do
config_port_pvid $j $NextVlan 1 3
config_port_member $NextVlan $j 0
config_port_member $NextVlan $cpuport 0 #cpu port
done
fi
rm -rf /tmp/switch.txt /tmp/switch1.txt
#!/bin/sh
if [ ! "$CONFIGLOADED" ]; then
if [ -r /etc/config.sh ]; then
. /etc/config.sh 2>/dev/null
CONFIGLOADED="1"
fi
fi
. ${VENDOR_PATH}/etc/switchports.conf 2> /dev/null
. ${VENDOR_PATH}/etc/switch_functions $3 2> /dev/null
# This script takes wan vlan id as input argument and configures VLANs
# in switch. This script calls functions defined in
# ${VENDOR_PATH}/etc/switch_functions
operation=$1
wan_vid=$2
Egress_tag=1
echo "wan vlan config $1 called for vlan $2"
if [ "$1" = "1" ]; then
create_vlanid $wan_vid $wan_fid
config_port_member $wan_vid $cpu_port $Egress_tag
for i in $wan_port; do
config_port_member $wan_vid $i $Egress_tag
done
elif [ "$1" = "0" ]; then
for i in $wan_port; do
reset_port_member $wan_vid $wan_port $Egress_tag
done
reset_port_member $wan_vid $cpu_port $Egress_tag
delete_vlanid $wan_vid $wan_fid
fi
This diff is collapsed.
#
# Copyright (C) 2009 OpenWrt.org
# Copyright (C) 2017 Intel Corporation
#
# Openwrt Makefile for libhelper
#
#
#### Includes ###################################
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
#### Package Info ###############################
PKG_NAME:=libhelper
PKG_SOURCE_VERSION:=1.4.0.3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_NAME:=ugw_sdk
PKG_SOURCE_INNERDIR:=helper/libhelper
PKG_SOURCE_URL:=ssh://git@gts-chd.intel.com:29418/sw_ugw/$(PKG_SOURCE_NAME).git
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_MAINTAINER:=Intel
PKG_LICENSE:=Intel
include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/package-version-override.mk
$(call include_mk, ugw-loglevel.mk)
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=Intel
SUBMENU:=UGW Framework
TITLE:=UGW SDK Helper library
URL:=http://www.intel.com
MAINTAINER:=Intel Corporation
DEPENDS:=
MENU:=1
endef
define Package/$(PKG_NAME)/description
UGW SDK Helper Library to define function,prototypes,structs,enums which are
used for list manipulation and debug purposes.
endef
### Menuconfig ##################################
define Package/$(PKG_NAME)/config
$(call Package/$(PKG_NAME)/override_version)
$(call Package/$(PKG_NAME)/override_source_path)
$(call Package/$(PKG_NAME)/config_debug_level)
$(call config_add_global_debug_level)
config $(PKG_NAME)_MEM_DEBUG
depends on PACKAGE_$(PKG_NAME)
bool "Memory Debug"
help
Memory Debug
endef
TARGET_CFLAGS += $(if $(CONFIG_libugwhelper_MEM_DEBUG),-DMEM_DEBUG)
#### Target Rules ###############################
define Build/Prepare
$(call Build/Prepare/Default)
$(INSTALL_DIR) $(STAGING_DIR)/usr/include
touch $(STAGING_DIR)/usr/include/vendor.h
echo "#define VENDOR_PATH \"$(VENDOR_PATH)\"" > $(STAGING_DIR)/usr/include/vendor.h
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/docs
$(INSTALL_DIR) $(STAGING_DIR)/mk/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/docs/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libhelper.so $(1)/usr/lib/
$(INSTALL_DATA) ./files/ugw-loglevel.mk $(STAGING_DIR)/mk/
$(RM) $(1)/usr/docs/list.h
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/$(VENDOR_PATH)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libhelper.so $(1)/$(VENDOR_PATH)/usr/lib/
endef
define Build/Clean
if [ -d $(PKG_BUILD_DIR) ]; then $(MAKE) -C $(PKG_BUILD_DIR) clean; \
$(RM) -r $(PKG_BUILD_DIR)/ipkg-$(BOARD); fi
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
#
# Add menu configurable log level options to a package.
# This also converts configured log levels to corresponding compile flags
# for the sources.
#
ifeq ($(PKG_IS_KERNEL_MODULE),y)
PKG_NAME_PREF:=kmod-
endif
define config_add_global_debug_level
config FEATURE_UGW_GLOBAL_DEBUG_LEVEL
depends on PACKAGE_$(PKG_NAME_PREF)$(PKG_NAME)
int 'Specifiy Debug level from 0 - 7 for UGW Software'
range 0 7
default '4'
help
Add global debug level for UGW Software (ranges: 0 - 7)
endef
define Package/$(PKG_NAME_PREF)$(PKG_NAME)/config_debug_level
config $(PKG_NAME_PREF)$(PKG_NAME)_DEBUG_LEVEL
string 'Specifiy Debug level from 0 - 7.'
depends on PACKAGE_$(PKG_NAME_PREF)$(PKG_NAME)
default ""
help
Compiles out all the debug levels greater than the selected level 'X' (0 <= X <= 7).
Allows control over debug prints and code foot print.
config $(PKG_NAME_PREF)$(PKG_NAME)_DEBUG_TYPE
int 'Specifiy Debug Type from 0 - 3.'
depends on PACKAGE_$(PKG_NAME_PREF)$(PKG_NAME)
range 0 3
default 1
help
Specify where the log needs to be redirected.
0 - None
1 - File
2 - Console
3 - Both File and Console
endef
TARGET_CFLAGS += -DPACKAGE_ID=\\\"$(PKG_NAME_PREF)$(PKG_NAME)\\\" -DLOGGING_ID=\"$(subst -,_,$(PKG_NAME_PREF)$(PKG_NAME))\" \
$(if $(call qstrip,$(CONFIG_$(PKG_NAME_PREF)$(PKG_NAME)_DEBUG_LEVEL)),\
-DLOG_LEVEL=$(CONFIG_$(PKG_NAME_PREF)$(PKG_NAME)_DEBUG_LEVEL),-DLOG_LEVEL=$(CONFIG_FEATURE_UGW_GLOBAL_DEBUG_LEVEL)) \
$(if $(call qstrip,$(CONFIG_$(PKG_NAME_PREF)$(PKG_NAME)_DEBUG_TYPE)),\
-DLOG_TYPE=$(CONFIG_$(PKG_NAME_PREF)$(PKG_NAME)_DEBUG_TYPE))
#
# Copyright (C) 2009 OpenWrt.org
# Copyright (C) 2017 Intel Corporation
#
# Openwrt Makefile for libscapi
#
#
#### Includes ###################################
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
#### Package Info ###############################
PKG_NAME:=libscapi
PKG_SOURCE_VERSION:=1.5.1.3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_NAME:=ugw_sdk
PKG_SOURCE_INNERDIR:=libscapi
PKG_SOURCE_URL:=ssh://git@gts-chd.intel.com:29418/sw_ugw/$(PKG_SOURCE_NAME).git
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_MAINTAINER:=Intel
PKG_LICENSE:=Intel
include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/package-version-override.mk
$(call include_mk, ugw-loglevel.mk)
define Package/$(PKG_NAME)
SECTION:=lib
CATEGORY:=Intel
SUBMENU:=UGW Framework
TITLE:=UGW Framework System Configuration APIs
URL:=http://www.intel.com
MAINTAINER:=Intel Corporation
DEPENDS:= +libhelper
MENU:=1
endef
define Package/$(PKG_NAME)/description
UGW Framework System Configuration APIs
endef
### Menuconfig ##################################
define Package/$(PKG_NAME)/config
$(call Package/$(PKG_NAME)/override_version)
$(call Package/$(PKG_NAME)/override_source_path)
$(call Package/$(PKG_NAME)/config_debug_level)
menu "$(PKG_NAME) features"
depends on PACKAGE_$(PKG_NAME)
source "$(SOURCE)/config/Config.in"
endmenu
endef
#export $(PKG_CONFIG_DEPENDS)
ifeq ($(CONFIG_USE_MUSL),y)
TARGET_CFLAGS += -DCONFIG_USE_MUSL
endif
#### Target Rules ###############################
define Build/Prepare
$(call Build/Prepare/Default)
$(if $(CONFIG_$(PKG_NAME)_USE_CUSTOM_SOURCE_DIR),,./files/interface_config.sh $(TOPDIR)/.config $(PKG_BUILD_DIR)/interfaces.cfg)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_BIN) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/docs
$(INSTALL_BIN) $(PKG_BUILD_DIR)/include/scapi_proto.h $(1)/usr/docs/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/include/ugw_error.h $(1)/usr/docs/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/include/ulogging.h $(1)/usr/docs/
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mem $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/scapiutil $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/$(VENDOR_PATH)/etc/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/interfaces.cfg $(1)/$(VENDOR_PATH)/etc/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/*.so $(1)/usr/lib
$(if $(CONFIG_TARGET_x86), \
$(INSTALL_DIR) $(1)/lib/preinit; \
$(INSTALL_BIN) ./files/scapi_utils.sh $(1)/lib/preinit/; \
,\
$(INSTALL_DIR) $(1)/etc/preinit.d; \
$(INSTALL_BIN) ./files/scapi_utils.sh $(1)/etc/preinit.d/; \
$(SED) 's/.*boot_hook_add.*preinit.*/scapi_utils_init/g' $(1)/etc/preinit.d/scapi_utils.sh; \
)
endef
define Build/Clean
if [ -d $(PKG_BUILD_DIR) ]; then $(MAKE) -C $(PKG_BUILD_DIR) clean; \
$(RM) -r $(PKG_BUILD_DIR)/ipkg-$(BOARD); fi
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
menu INTERFACE1
config INTERFACE1_TYPE
string "Type"
default "LAN"
config INTERFACE1_IFNAME
string "IfName"
default "eth0_1"
config INTERFACE1_MACVLAN
bool "MacvLan"
default n
config INTERFACE1_PROTOS
string "Protos"
default "Static"
config INTERFACE1_MODE
string "Mode"
default "ETH"
config INTERFACE1_PORTID
string "Switch Port"
default ""
config INTERFACE1_ENABLE
bool "Enable"
default "y"
config INTERFACE1_LINKENABLE
bool "Link Enable"
default "y"
config INTERFACE1_BONDMEMBERS
string "Bond Members"
endmenu
menu INTERFACE2
config INTERFACE2_TYPE
string "Type"
default "LAN"
config INTERFACE2_IFNAME
string "IfName"
default "eth0_2"
config INTERFACE2_MACVLAN
bool "MacvLan"
default n
config INTERFACE2_PROTOS
string "Protos"
default "Static"
config INTERFACE2_MODE
string "Mode"
default "ETH"
config INTERFACE2_PORTID
string "Switch Port"
default ""
config INTERFACE2_ENABLE
bool "Enable"
default "y"
config INTERFACE2_LINKENABLE
bool "Link Enable"
default "y"
config INTERFACE2_BONDMEMBERS
string "Bond Members"
endmenu
menu INTERFACE3
config INTERFACE3_TYPE
string "Type"
default "LAN"
config INTERFACE3_IFNAME
string "IfName"
default "eth0_3"
config INTERFACE3_MACVLAN
bool "MacvLan"
default n
config INTERFACE3_PROTOS
string "Protos"
default "Static"
config INTERFACE3_MODE
string "Mode"
default "ETH"
config INTERFACE3_PORTID
string "Switch Port"
default ""
config INTERFACE3_ENABLE
bool "Enable"
default "y"
config INTERFACE3_LINKENABLE
bool "Link Enable"
default "y"
config INTERFACE3_BONDMEMBERS
string "Bond Members"
endmenu
menu INTERFACE4
config INTERFACE4_TYPE
string "Type"
default "LAN"
config INTERFACE4_IFNAME
string "IfName"
default "eth0_4"
config INTERFACE4_MACVLAN
bool "MacvLan"
default n
config INTERFACE4_PROTOS
string "Protos"
default "Static"
config INTERFACE4_MODE
string "Mode"
default "ETH"
config INTERFACE4_PORTID
string "Switch Port"
default ""
config INTERFACE4_ENABLE
bool "Enable"
default "y"
config INTERFACE4_LINKENABLE
bool "Link Enable"
default "y"
config INTERFACE4_BONDMEMBERS
string "Bond Members"
endmenu
menu INTERFACE5
config INTERFACE5_TYPE
string "Type"
default "WAN"
config INTERFACE5_IFNAME
string "IfName"
default "eth1"
config INTERFACE5_MACVLAN
bool "MacvLan"
default y
config INTERFACE5_PROTOS
string "Protos"
default "Static,DHCP,PPPoE"
config INTERFACE5_MODE
string "Mode"
default "ETH"
config INTERFACE5_PORTID
string "Switch Port"
default ""
config INTERFACE5_ENABLE
bool "Enable"
default "y"
config INTERFACE5_LINKENABLE
bool "Link Enable"
default "y"
config INTERFACE5_BONDMEMBERS
string "Bond Members"
endmenu
menu INTERFACE6
config INTERFACE6_TYPE
string "Type"
default "WAN"
config INTERFACE6_MACVLAN
bool "MacvLan"
default y
config INTERFACE6_PROTOS
string "Protos"
default "Static,DHCP,PPPoE"
config INTERFACE6_MODE
string "Mode"
default "ETH"
config INTERFACE6_PORTID
string "Switch Port"
default ""
config INTERFACE6_ENABLE
bool "Enable"
default "y"
config INTERFACE6_LINKENABLE
bool "Link Enable"
default "y"
config INTERFACE6_BONDMEMBERS
string "Bond Members"
endmenu
menu INTERFACE7
config INTERFACE7_TYPE
string "Type"
default "WAN"
config INTERFACE7_IFNAME
string "IfName"
default "bond-bond0"
config INTERFACE7_MACVLAN
bool "MacvLan"
default y
config INTERFACE7_PROTOS
string "Protos"
default "Static,DHCP,PPPoE"
config INTERFACE7_MODE
string "Mode"
default "bond"
config INTERFACE7_PORTID
string "Switch Port"
default ""
config INTERFACE7_ENABLE
bool "Enable"
default "y"
config INTERFACE7_LINKENABLE
bool "LinkEnable"
default "y"
config INTERFACE7_BONDMEMBERS
string "Bond Members"
default "eth1 nrgmii3"
endmenu
#!/bin/bash
file=$1 ;
configFilePath=$2 ;
sList= ;
sInterface= ;
sLanArr= ;
sWanArr= ;
#remove if any existing file
rm -rf $configFilePath ;
count_int=0;
count_lan=0;
count_wan=0;
while read -r line;
do
{
#Inputs to the script, the delimiter, and the string itself
substring="CONFIG_INTERFACE";
string=$line ;
#read each line of file
if test "${line#$substring}" != "$line"
then
#Split the String into Substrings (CONIG_INTERFACE1_TYPE->1_TYPE)
sList=$(echo $string | sed -e 's/^ *CONFIG_INTERFACE//g' | sed 's/'\"'//g');
sInterface[$count_int]=$sList;
count_int=$count_int+1 ;
#process if type is LAN
if [[ "$sList" == *_TYPE*=*LAN* ]];then
#saving the interface number in pos_lantype
pos_lantype=$(echo ${sList//[^0-9]/});
#get all the paramter for interface_position check if interface name is present then add in lan interface
while read -r interfaceline;
do
#Inputs to the script, the delimiter, and the string itself
substring="CONFIG_INTERFACE";
string=$interfaceline ;
#read each line of file
if test "${interfaceline#$substring}" != "$interfaceline"
then
#Split the String into Substrings (CONIG_INTERFACE1_TYPE->1_TYPE)
sInterfaceList=$(echo $string | sed -e 's/^ *CONFIG_INTERFACE//g' | sed 's/'\"'//g');
if [[ "$sInterfaceList" == $pos_lantype"_IFNAME"* ]];then
varVal=$(echo $sInterfaceList | cut -f2 -d=)
#if not empty then copy the index in lan array
if [[ ! -z "${varVal// }" ]]; then
sLanArr[$count_lan]=$pos_lantype ;
count_lan=$count_lan+1 ;
fi
fi
fi
done < $file
fi #end of lan
#process if type is WAN
if [[ "$sList" == *_TYPE*=*WAN* ]];then
pos_wantype=$(echo ${sList//[^0-9]/});
#get all the paramter for interface_position check if interface name is present then add in wan interface
while read -r interfaceline;
do
#Inputs to the script, the delimiter, and the string itself
substring="CONFIG_INTERFACE";
string=$interfaceline ;
#read each line of file
if test "${interfaceline#$substring}" != "$interfaceline"
then
#Split the String into Substrings (CONIG_INTERFACE1_TYPE->1_TYPE)
sInterfaceList=$(echo $string | sed -e 's/^ *CONFIG_INTERFACE//g' | sed 's/'\"'//g');
#check if IFNAME is empty
if [[ "$sInterfaceList" == $pos_wantype"_IFNAME"* ]];then
varVal=$(echo $sInterfaceList | cut -f2 -d=)
#if not empty then copy the index in wan array
if [[ ! -z "${varVal// }" ]]; then
sWanArr[$count_wan]=$pos_wantype ;
count_wan=$count_wan+1 ;
fi
fi
fi
done < $file
fi #end of wan
fi
}
done < $file
i=1;
count=1;
#for each lan array,output the interface to config file
for (( j = 0; j < ${#sLanArr[@]}; j++ )); do
echo -e "###################LAN-${i}###########\n{" >> $configFilePath ;
for (( k = 0; k < ${#sInterface[@]}; k++ )); do
if [[ ${sInterface[k]} =~ ^${sLanArr[j]}_.* ]];then
if [[ ${sInterface[k]} =~ ^.*=y$ ]]; then
echo ${sInterface[k]} | sed 's/^[0-9]*_//' | sed 's/=y$/=true/' >> $configFilePath ;
else
echo ${sInterface[k]} | sed 's/^[0-9]*_//' >> $configFilePath ;
fi
fi
done
echo -e "}\n###################END LAN-${i}#######" >> $configFilePath ;
((i++))
((count++))
done
i=1;
#for each wan array,output the interface to config file
for (( j = 0; j < ${#sWanArr[@]}; j++ )); do
echo -e "###################WAN-${i}###########\n{" >> $configFilePath ;
for (( k = 0; k < ${#sInterface[@]}; k++ )); do
if [[ ${sInterface[k]} =~ ^${sWanArr[j]}_.* ]];then
if [[ ${sInterface[k]} =~ ^.*=y$ ]]; then
echo ${sInterface[k]} | sed 's/^[0-9]*_//' | sed 's/=y$/=true/' >> $configFilePath ;
else
echo ${sInterface[k]} | sed 's/^[0-9]*_//' >> $configFilePath ;
fi
fi
done
echo -e "}\n###################END WAN-${i}#######" >> $configFilePath ;
((i++))
((count++))
done
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment