This commit is contained in:
zhanglianghy 2019-08-30 10:57:26 +08:00
commit 7e5868858e
35 changed files with 379 additions and 204 deletions

View File

@ -13,7 +13,7 @@ $(info Make $(TARGET_OBJ): $(CURDIR))
endif
# 定义 Make 解析命令的 bash
SHELL := /bin/sh
SHELL := /bin/bash
# 构建信息开关,是否显示 gcc、ld 等命令执行的命令行消息,默认关闭
ENABLE_MAKE_LOG ?= FALSE
@ -91,8 +91,7 @@ RM = rm -rf
MKDIR = mkdir -p
CP = cp -f
ECHO_FILE=/etc/used_echo_tag
ifeq ($(ECHO_FILE), $(wildcard $(ECHO_FILE)))
ifeq ($(findstring bash, $(SHELL)),)
ECHO_COLOR = echo
else
ECHO_COLOR = echo -e
@ -271,46 +270,45 @@ endif
OUTPUT_DIR := ./.build/
# 编译中间文件存放相对路径
PLAT_ARM64_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_arm64_$(BUILD_DIR)
PLAT_LINUX_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_linux_$(BUILD_DIR)
ARM64_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_arm64_$(BUILD_DIR)
LINUX_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_linux_$(BUILD_DIR)
# 设置安装路径
ifeq ($(TARGET_TYPE), SDK)
PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/sdk/$(CPU_LINUX_DIR)/
PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/sdk.debug/$(CPU_LINUX_DIR)/
LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/sdk/$(CPU_LINUX_DIR)/
PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/sdk.debug/$(CPU_LINUX_DIR)/
else
ifeq ($(TARGET_BOX), )
PLAT_ARM64_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_ARM64_DIR)/$(TARGET_BOX)/
PLAT_ARM64_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_ARM64_DIR)/$(TARGET_BOX)/
ARM64_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_ARM64_DIR)/$(TARGET_BOX)/
ifeq ($(LINUX_USER_INS_DIR), )
PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
else
PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR)/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR)/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
endif
PLAT_ARM64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_ARM64_DIR)/$(TARGET_BOX)/
ARM64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_ARM64_DIR)/$(TARGET_BOX)/
ifeq ($(LINUX_USER_INS_DIR), )
PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
else
PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR).debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR).debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)/
endif
else
PLAT_ARM64_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_ARM64_DIR)/$(TARGET_BOX)-arm64/
ARM64_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_ARM64_DIR)/$(TARGET_BOX)-arm64/
ifeq ($(LINUX_USER_INS_DIR), )
PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/targets/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
else
PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR)/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR)/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
endif
PLAT_ARM64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_ARM64_DIR)/$(TARGET_BOX)-arm64/
ARM64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_ARM64_DIR)/$(TARGET_BOX)-arm64/
ifeq ($(LINUX_USER_INS_DIR), )
PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/targets.debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
else
PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR).debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR).debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/
endif
endif
@ -322,41 +320,41 @@ BUILD_TARGET :=
ifneq ($(UNMAKE_PROCESS), TRUE)
# 定义最终生成目标文件名
PLAT_ARM64_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-$(ARM64_OBJ_TARGET)$(TARGET_EXT)
PLAT_LINUX_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-$(LINUX_OBJ_TARGET)$(TARGET_EXT)
ARM64_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-$(ARM64_OBJ_TARGET)$(TARGET_EXT)
LINUX_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-$(LINUX_OBJ_TARGET)$(TARGET_EXT)
# ARM64 平台生成目标、编译参数、链接参数、依赖库
ifeq ($(PLAT_ARM64), TRUE)
BUILD_TARGET += $(PLAT_ARM64_TARGET)
PLAT_ARM64_CFLAGS += -DPLATFORM_ARM64 $(ARM64_EXTFLAG)
PLAT_ARM64_LDFLAGS += $(ARM64_DRV_LDFLAGS) -L ./debug
PLAT_ARM64_LIBFLAGS := $(ARM64_LIBFLAGS)
PLAT_ARM64_LIBS := $(ARM64_LIBS)
BUILD_TARGET += $(ARM64_TARGET)
ARM64_CFLAGS := $(PLAT_ARM64_CFLAGS) -DPLATFORM_ARM64 $(ARM64_EXTFLAG)
ARM64_LDFLAGS := $(PLAT_ARM64_LDFLAGS) $(ARM64_DRV_LDFLAGS) -L ./debug
ARM64_LIBFLAGS := $(PLAT_ARM64_LIBFLAGS)
ARM64_LIBS := $(PLAT_ARM64_LIBS)
endif
# ARM64 平台生成目标、编译参数、链接参数、依赖库
ifeq ($(PLAT_LINUX), TRUE)
BUILD_TARGET += $(PLAT_LINUX_TARGET)
PLAT_LINUX_CFLAGS += -DPLATFORM_LINUX $(LINUX_EXTFLAG)
PLAT_LINUX_LDFLAGS += $(LINUX_DRV_LDFLAGS) -L ./debug
PLAT_LINUX_LIBFLAGS := $(LINUX_LIBFLAGS)
PLAT_LINUX_LIBS := $(LINUX_LIBS)
BUILD_TARGET += $(LINUX_TARGET)
LINUX_CFLAGS := $(PLAT_LINUX_CFLAGS) -DPLATFORM_LINUX $(LINUX_EXTFLAG)
LINUX_LDFLAGS := $(PLAT_LINUX_LDFLAGS) $(LINUX_DRV_LDFLAGS) -L ./debug
LINUX_LIBFLAGS := $(PLAT_LINUX_LIBFLAGS)
LINUX_LIBS := $(PLAT_LINUX_LIBS)
endif
# 根据源文件推算出生成目标的依赖项
ifeq ($(PLAT_ARM64), TRUE)
PLAT_ARM64_OBJS := $(PLAT_ARM64_SRCS:%.c=$(PLAT_ARM64_DIR)/%.o)
PLAT_ARM64_OBJS += $(PLAT_ARM64_AS_SRCS:%.s=$(PLAT_ARM64_DIR)/%.o)
PLAT_ARM64_DEPS := $(PLAT_ARM64_SRCS:%.c=$(PLAT_ARM64_DIR)/%.d)
PLAT_ARM64_OBJS := $(PLAT_ARM64_SRCS:%.c=$(ARM64_DIR)/%.o)
PLAT_ARM64_OBJS += $(PLAT_ARM64_AS_SRCS:%.s=$(ARM64_DIR)/%.o)
PLAT_ARM64_DEPS := $(PLAT_ARM64_SRCS:%.c=$(ARM64_DIR)/%.d)
else
PLAT_ARM64_OBJS :=
PLAT_ARM64_DEPS :=
endif
ifeq ($(PLAT_LINUX), TRUE)
PLAT_LINUX_OBJS := $(PLAT_LINUX_SRCS:%.c=$(PLAT_LINUX_DIR)/%.o)
PLAT_LINUX_OBJS += $(PLAT_LINUX_AS_SRCS:%.s=$(PLAT_LINUX_DIR)/%.o)
PLAT_LINUX_DEPS := $(PLAT_LINUX_SRCS:%.c=$(PLAT_LINUX_DIR)/%.d)
PLAT_LINUX_OBJS := $(PLAT_LINUX_SRCS:%.c=$(LINUX_DIR)/%.o)
PLAT_LINUX_OBJS += $(PLAT_LINUX_AS_SRCS:%.s=$(LINUX_DIR)/%.o)
PLAT_LINUX_DEPS := $(PLAT_LINUX_SRCS:%.c=$(LINUX_DIR)/%.d)
else
PLAT_LINUX_OBJS :=
PLAT_LINUX_DEPS :=
@ -402,17 +400,17 @@ endif
all: $(BUILD_TARGET)
# Build ARM64
ifeq ($(PLAT_ARM64), TRUE)
$(PLAT_ARM64_TARGET): $(PLAT_ARM64_OBJS)
$(ARM64_TARGET): $(PLAT_ARM64_OBJS)
# 创建构建需要的目录结构
-@test -d $(TARGET_OUT_DIR) || $(MKDIR) $(TARGET_OUT_DIR)
ifeq ($(TARGET_TYPE), LIB)
# 打包生成库文件
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) AR $@"
$(MLOG)$(ARM64_CROSS_AR) $(PLAT_ARM64_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_ARM64_LIBS)
$(MLOG)$(ARM64_CROSS_AR) $(ARM64_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(ARM64_LIBS)
else
# 链接生成可执行文件
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) LD $@"
$(MLOG)$(ARM64_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(PLAT_ARM64_LDFLAGS) $+ $(PLAT_ARM64_LIBS)
$(MLOG)$(ARM64_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(ARM64_LDFLAGS) $+ $(ARM64_LIBS)
ifeq ($(TARGET_STRIP), TRUE)
# 将目标的调试信息复制到另外一个新文件中
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) OBJCOPY $@.debug"
@ -426,30 +424,30 @@ ifeq ($(TARGET_STRIP), TRUE)
endif
endif
# C 源文件编译规则
$(PLAT_ARM64_DIR)/%.o : %.c
$(ARM64_DIR)/%.o : %.c
-@test -d $(dir $@) || $(MKDIR) $(dir $@)
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) CC $<"
$(MLOG)$(ARM64_CROSS_CC) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" $(PLAT_ARM64_CFLAGS) -o $@ -c $<
$(MLOG)$(ARM64_CROSS_CC) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" $(ARM64_CFLAGS) -o $@ -c $<
# 汇编文件编译规则
$(PLAT_ARM64_DIR)/%.o : %.s
$(ARM64_DIR)/%.o : %.s
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) CC $<"
$(MLOG)$(ARM64_CROSS_CC) -c $< -o $@
endif
# Build LINUX Board
ifeq ($(PLAT_LINUX), TRUE)
$(PLAT_LINUX_TARGET): $(PLAT_LINUX_OBJS)
$(LINUX_TARGET): $(PLAT_LINUX_OBJS)
-@test -d $(TARGET_OUT_DIR) || $(MKDIR) $(TARGET_OUT_DIR)
ifeq ($(TARGET_TYPE), LIB)
# 打包生成库文件
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) AR $@"
$(MLOG)$(AR) $(PLAT_LINUX_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_LINUX_LIBS)
$(MLOG)$(AR) $(LINUX_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(LINUX_LIBS)
else
# 链接生成可执行文件
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) LD $@"
$(MLOG)$(LINUX_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(PLAT_LINUX_LDFLAGS) $+ $(PLAT_LINUX_LIBS)
$(MLOG)$(LINUX_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(LINUX_LDFLAGS) $+ $(LINUX_LIBS)
ifeq ($(TARGET_STRIP), TRUE)
# 将目标的调试信息复制到另外一个新文件中
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) OBJCOPY $@.debug"
@ -464,13 +462,13 @@ endif
endif
# C 源文件编译规则
$(PLAT_LINUX_DIR)/%.o : %.c
$(LINUX_DIR)/%.o : %.c
-@test -d $(dir $@) || $(MKDIR) $(dir $@)
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) CC $<"
$(MLOG)$(CC) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" $(PLAT_LINUX_CFLAGS) -o $@ -c $<
$(MLOG)$(CC) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" $(LINUX_CFLAGS) -o $@ -c $<
# 汇编文件编译规则
$(PLAT_LINUX_DIR)/%.o : %.s
$(LINUX_DIR)/%.o : %.s
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) CC $<"
$(MLOG)$(CC) -c $< -o $@
endif
@ -485,16 +483,16 @@ endif
ifneq ($(PLAT_ARM64_DONT_INSTALL), TRUE)
# ARM64 targets install
ifeq ($(PLAT_ARM64), TRUE)
-@test -d $(PLAT_ARM64_PUBLISH_DIR) || $(MKDIR) $(PLAT_ARM64_PUBLISH_DIR)
-@test -d $(PLAT_ARM64_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_ARM64_PUBLISH_DEBUG_DIR)
-@test -d $(ARM64_PUBLISH_DIR) || $(MKDIR) $(ARM64_PUBLISH_DIR)
-@test -d $(ARM64_PUBLISH_DEBUG_DIR) || $(MKDIR) $(ARM64_PUBLISH_DEBUG_DIR)
ifneq ($(UNMAKE_PROCESS), TRUE)
@$(ECHO_COLOR) "$(INSTALL_COLOR) $(PLAT_ARM64_COLOR) $(TARGET_OUT_DIR)$(PLAT_ARM64_TARGET) $(PLAT_ARM64_TARGET).debug $(INSTALL_PATH_COLOR)"
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_ARM64_TARGET) $(PLAT_ARM64_PUBLISH_DIR)
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_ARM64_TARGET).debug $(PLAT_ARM64_PUBLISH_DEBUG_DIR)
@$(ECHO_COLOR) "$(INSTALL_COLOR) $(PLAT_ARM64_COLOR) $(TARGET_OUT_DIR)$(ARM64_TARGET) $(ARM64_TARGET).debug $(INSTALL_PATH_COLOR)"
@$(CP) $(TARGET_OUT_DIR)/$(ARM64_TARGET) $(ARM64_PUBLISH_DIR)
@$(CP) $(TARGET_OUT_DIR)/$(ARM64_TARGET).debug $(ARM64_PUBLISH_DEBUG_DIR)
endif
ifneq ($(PLAT_ARM64_USER_INS_ITEMS), )
@$(ECHO_COLOR) "$(INSTALL_USER_ITEM_COLOR) $(PLAT_ARM64_COLOR) $(notdir $(PLAT_ARM64_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)"
@$(CP) $(PLAT_ARM64_USER_INS_ITEMS) $(PLAT_ARM64_PUBLISH_DIR)
@$(CP) $(PLAT_ARM64_USER_INS_ITEMS) $(ARM64_PUBLISH_DIR)
endif
endif
endif
@ -502,16 +500,16 @@ endif
ifneq ($(PLAT_LINUX_DONT_INSTALL), TRUE)
# LINUX board targets install
ifeq ($(PLAT_LINUX), TRUE)
-@test -d $(PLAT_LINUX_PUBLISH_DIR) || $(MKDIR) $(PLAT_LINUX_PUBLISH_DIR)
-@test -d $(PLAT_LINUX_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_LINUX_PUBLISH_DEBUG_DIR)
-@test -d $(LINUX_PUBLISH_DIR) || $(MKDIR) $(LINUX_PUBLISH_DIR)
-@test -d $(PUBLISH_DEBUG_DIR) || $(MKDIR) $(PUBLISH_DEBUG_DIR)
ifneq ($(UNMAKE_PROCESS), TRUE)
@$(ECHO_COLOR) "$(INSTALL_COLOR) $(PLAT_LINUX_COLOR) $(TARGET_OUT_DIR)$(PLAT_LINUX_TARGET) $(PLAT_LINUX_TARGET).debug $(INSTALL_PATH_COLOR)"
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_LINUX_TARGET) $(PLAT_LINUX_PUBLISH_DIR)
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_LINUX_TARGET).debug $(PLAT_LINUX_PUBLISH_DEBUG_DIR)
@$(ECHO_COLOR) "$(INSTALL_COLOR) $(PLAT_LINUX_COLOR) $(TARGET_OUT_DIR)$(LINUX_TARGET) $(LINUX_TARGET).debug $(INSTALL_PATH_COLOR)"
@$(CP) $(TARGET_OUT_DIR)/$(LINUX_TARGET) $(LINUX_PUBLISH_DIR)
@$(CP) $(TARGET_OUT_DIR)/$(LINUX_TARGET).debug $(PUBLISH_DEBUG_DIR)
endif
ifneq ($(PLAT_LINUX_USER_INS_ITEMS), )
@$(ECHO_COLOR) "$(INSTALL_USER_ITEM_COLOR) $(PLAT_LINUX_COLOR) $(notdir $(PLAT_LINUX_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)"
@$(CP) $(PLAT_LINUX_USER_INS_ITEMS) $(PLAT_LINUX_PUBLISH_DIR)
@$(CP) $(PLAT_LINUX_USER_INS_ITEMS) $(LINUX_PUBLISH_DIR)
endif
ifneq ($(USER_MULTILE_PLATFORM_HEAD_ITEMS), )
@$(ECHO_COLOR) "$(INSTALL_MULT_PLAT_COLOR) $(PLAT_LINUX_COLOR) $(notdir $(USER_MULTILE_PLATFORM_HEAD_ITEMS)) $(INSTALL_PATH_COLOR)"

View File

@ -1,4 +1,4 @@
SHELL := /bin/sh
SHELL := /bin/bash
# 定义各个平台编译工具,建议设置编译工具路径到 PATH 环境变量
# CC : Cross Build Tools

View File

@ -33,6 +33,20 @@ typedef uint ret_code;
#define RET_IPINVALID (uint)((uint)NETCONFIG_MODULE<<16|1)
#define RET_BRNAMEERR (uint)((uint)NETCONFIG_MODULE<<16|1)
/* VLANCONFIG_MODULE 0x00050000 ~ 0x0005ffff*/
#define RET_VIDNUM_INVALID (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_VID_INVALID (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_VID_EXIST (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_VID_NOT_EXIST (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_INTERFACE_NOT_EXIST (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_ATTR_INVALID (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_OPTYPE_ERR (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_SYS_VCONFIG_ERR (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_SYS_IFCONFIG_ERR (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define RET_SYS_FILEOP_ERR (uint)((uint)VLAN_CONFIG_MODULE<<16|1)
#define ERR_STR_LEN 64
/* 错误码描述 */
@ -56,7 +70,18 @@ typedef uint ret_code;
{ RET_SRCERR, "ConfigSourceErr"},\
\
{ RET_IPINVALID, "IpInvalid"},\
{ RET_BRNAMEERR, "BrNameInvalid"}\
{ RET_BRNAMEERR, "BrNameInvalid"},\
\
{ RET_VIDNUM_INVALID, "VidNumInvalid"},\
{ RET_VID_INVALID, "VidValueInvalid"},\
{ RET_VID_EXIST, "VidHasExist"},\
{ RET_VID_NOT_EXIST, "VidHasNotExist"},\
{ RET_INTERFACE_NOT_EXIST, "InterfaceHasNotExist"},\
{ RET_ATTR_INVALID, "AttrInvalid"},\
{ RET_OPTYPE_ERR, "OperationTypeError"},\
{ RET_SYS_VCONFIG_ERR, "SystemVconfigError"},\
{ RET_SYS_IFCONFIG_ERR, "SystemIfconfigError"},\
{ RET_SYS_FILEOP_ERR, "SystemFileOperationError"}\
}
struct err_disc {

View File

@ -30,7 +30,7 @@ endif
.PHONY : demo database openrpc ulog klog klog_test conntrack netlink trace redismq usermanager configm webauth matchrule logging ulog_test
all: demo database openrpc ulog klog klog_test conntrack netlink trace redismq usermanager configm webauth matchrule logging ulog_test
all: database openrpc ulog klog klog_test conntrack netlink trace redismq usermanager configm webauth matchrule logging ulog_test
ifeq ($(OPT), install)
#$(shell `find ../release -name "*.zip" -delete`)

View File

@ -42,8 +42,8 @@ PLAT_LINUX_CFLAGS := $(PLAT_ARM64_CFLAGS)
PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
PLAT_ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
PLAT_LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -93,11 +93,11 @@ PLAT_LINUX_LDFLAGS :=
COMMON_STD_LIB := -lpthread -lm -lcjson -levent -ljson-c -lhiredis -lodbc -lev -ldl
#gcc libs
ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lnetlinku-$(ARM64_OBJ_TARGET) -lredismq-$(ARM64_OBJ_TARGET)
ARM64_LIBS += -lulogapi-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lnetlinku-$(ARM64_OBJ_TARGET) -lredismq-$(ARM64_OBJ_TARGET)
PLAT_ARM64_LIBS += -lulogapi-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lnetlinku-$(LINUX_OBJ_TARGET) -lredismq-$(LINUX_OBJ_TARGET)
LINUX_LIBS += -lulogapi-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lnetlinku-$(LINUX_OBJ_TARGET) -lredismq-$(LINUX_OBJ_TARGET)
PLAT_LINUX_LIBS += -lulogapi-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
# this line must be at below of thus, because of...

View File

@ -44,8 +44,8 @@ PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
PLAT_ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
PLAT_LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -43,8 +43,8 @@ PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS :=
#gcc libs
ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lconfigmapi-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lconfigmapi-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
PLAT_ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lconfigmapi-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
PLAT_LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lconfigmapi-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -44,8 +44,8 @@ PLAT_LINUX_LDFLAGS := -fPIC -shared
#gcc libs
ARM64_LIBS := -lodbc -lcjson
LINUX_LIBS := -lodbc -lcjson
PLAT_ARM64_LIBS := -lodbc -lcjson
PLAT_LINUX_LIBS := -lodbc -lcjson
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -44,11 +44,11 @@ PLAT_LINUX_LDFLAGS := $(PLAT_LINUX_LDFLAGS)
COMMON_STD_LIB := -lpthread -lm -lcjson -levent -ljson-c -lhiredis -lev
#gcc libs
ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lnetlinku-$(ARM64_OBJ_TARGET) -lredismq-$(ARM64_OBJ_TARGET)
ARM64_LIBS += -lulogapi-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lnetlinku-$(ARM64_OBJ_TARGET) -lredismq-$(ARM64_OBJ_TARGET)
PLAT_ARM64_LIBS += -lulogapi-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lnetlinku-$(LINUX_OBJ_TARGET) -lredismq-$(LINUX_OBJ_TARGET)
LINUX_LIBS += -lulogapi-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lnetlinku-$(LINUX_OBJ_TARGET) -lredismq-$(LINUX_OBJ_TARGET)
PLAT_LINUX_LIBS += -lulogapi-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -45,8 +45,8 @@ PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
COMMON_STD_LIB := -lpthread -lcjson -lev -lm
#gcc libs
ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lulogapi-$(ARM64_OBJ_TARGET) -lconfigmapi-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lulogapi-$(LINUX_OBJ_TARGET) -lconfigmapi-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lulogapi-$(ARM64_OBJ_TARGET) -lconfigmapi-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lulogapi-$(LINUX_OBJ_TARGET) -lconfigmapi-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -44,8 +44,8 @@ PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS := -lpthread -lm -lev
LINUX_LIBS := -lpthread -lm -lev
PLAT_ARM64_LIBS := -lpthread -lm -lev
PLAT_LINUX_LIBS := -lpthread -lm -lev
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -42,8 +42,8 @@ PLAT_LINUX_CFLAGS := $(PLAT_ARM64_CFLAGS)
PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
PLAT_ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
PLAT_LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -42,8 +42,8 @@ PLAT_LINUX_CFLAGS := $(PLAT_ARM64_CFLAGS)
PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
PLAT_ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
PLAT_LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -42,8 +42,8 @@ PLAT_LINUX_CFLAGS := $(PLAT_ARM64_CFLAGS)
PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
ARM64_LIBS :=
LINUX_LIBS :=
PLAT_ARM64_LIBS :=
PLAT_LINUX_LIBS :=
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -44,8 +44,8 @@ PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS := -lhiredis -ljson-c -levent
LINUX_LIBS := -lhiredis -ljson-c -levent
PLAT_ARM64_LIBS := -lhiredis -ljson-c -levent
PLAT_LINUX_LIBS := -lhiredis -ljson-c -levent
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -44,8 +44,8 @@ PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS :=
LINUX_LIBS :=
PLAT_ARM64_LIBS :=
PLAT_LINUX_LIBS :=
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -44,8 +44,8 @@ PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
PLAT_ARM64_LIBS := -lnetlinku-$(ARM64_OBJ_TARGET)
PLAT_LINUX_LIBS := -lnetlinku-$(LINUX_OBJ_TARGET)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -42,8 +42,8 @@ PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS :=
#gcc libs
ARM64_LIBS := -ltraceapi-$(ARM64_OBJ_TARGET) -lnetlinku-$(ARM64_OBJ_TARGET) -lpthread
LINUX_LIBS := -ltraceapi-$(LINUX_OBJ_TARGET) -lnetlinku-$(LINUX_OBJ_TARGET) -lpthread
PLAT_ARM64_LIBS := -ltraceapi-$(ARM64_OBJ_TARGET) -lnetlinku-$(ARM64_OBJ_TARGET) -lpthread
PLAT_LINUX_LIBS := -ltraceapi-$(LINUX_OBJ_TARGET) -lnetlinku-$(LINUX_OBJ_TARGET) -lpthread
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -43,8 +43,8 @@ PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lulogapi-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lulogapi-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
PLAT_ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lulogapi-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
PLAT_LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lulogapi-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -43,8 +43,8 @@ PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lulogapi-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lulogapi-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
PLAT_ARM64_LIBS := -lopenrpc-$(ARM64_OBJ_TARGET) -lulogapi-$(ARM64_OBJ_TARGET) -lpthread -lm -lev
PLAT_LINUX_LIBS := -lopenrpc-$(LINUX_OBJ_TARGET) -lulogapi-$(LINUX_OBJ_TARGET) -lpthread -lm -lev
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -1043,6 +1043,29 @@ ret_code routing_config_chk(uint source, uint *config_type,
{
return RET_CHKERR;
}
else if(conf_buff->version == IPV4_VERSION)
{
int a = -1,b = -1,c = -1,d = -1;
int a1 = -1,b1 = -1,c1 = -1,d1 = -1;
sscanf(conf_buff->destip,"%d.%d.%d.%d",&a,&b,&c,&d);
if(a<0 || a>255 || b<0 || b>255 || c<0 || c>255 || d<0 |d>255)
{
rpc_log_info("ip address wrong:%d %d %d %d\n",a,b,c,d);
return RET_INPUTERR;
}
if(strcmp(conf_buff->gateway,"") != 0)
{
sscanf(conf_buff->gateway,"%d.%d.%d.%d",&a1,&b1,&c1,&d1);
if(a1<0 || a1>255 || b1<0 || b1>255 || c1<0 || c1>255 || d1<0 |d1>255)
{
rpc_log_info("gateway address wrong:%d %d %d %d\n",a1,b1,c1,d1);
return RET_INPUTERR;
}
}
}
else if(strcmp(conf_buff->gateway,"") == 0 && strcmp(conf_buff->dev,"") == 0)
{
rpc_log_info(" gateway and dev are NULL\n");
@ -1066,6 +1089,7 @@ ret_code routing_config_chk(uint source, uint *config_type,
}
if(conf_length <= CM_BUFF_SIZE)
{
*input_len = conf_length;
@ -1199,6 +1223,10 @@ ret_code all_routing_config_chk(uint source, uint * config_type,
return RET_CHKERR;
}
}
else
{
return RET_INPUTERR;
}
return ret;
}

View File

@ -359,7 +359,7 @@ ret_code add_vlan_sub_interface(char *if_name, int *vlan_bitmap)
status = system(buf);
if(status != 0){
printf("[vlan]add_vlan_sub_if: subif status error. (%s)\n", strerror(errno));
return RET_SYSERR;
return RET_SYS_VCONFIG_ERR;
}
memset(buf, 0, SYSCALL_BUF_LEN);
@ -370,7 +370,7 @@ ret_code add_vlan_sub_interface(char *if_name, int *vlan_bitmap)
status = system(buf);
if(status != 0){
printf("[vlan]add_vlan_sub_if: ifconfig subif status error. (%s)\n", strerror(errno));
return RET_SYSERR;
return RET_SYS_IFCONFIG_ERR;
}
memset(buf, 0, SYSCALL_BUF_LEN);
@ -468,7 +468,7 @@ ret_code add_interface_vlan(interface_vlan_info *if_vlan_info)
}
else{
printf("[vlan]add_interface_vlan: LINK-TYPE attr(%d) input error.\n", new_attr);
return RET_INPUTERR;
return RET_ATTR_INVALID;
}
/* 更新全局接口vlan数据结构 */
@ -619,7 +619,7 @@ ret_code del_vlan_sub_interface(char *if_name, int *vlan_bitmap)
status = system(buf);
if(status != 0){
printf("[vlan]del_vlan_sub_if:status error. (%s)\n", strerror(errno));
return RET_ERR;
return RET_SYS_VCONFIG_ERR;
}
memset(buf, 0, SYSCALL_BUF_LEN);
memset(tmp_brname, 0, BR_VLAN_NAME_LEN);
@ -633,7 +633,7 @@ ret_code del_vlan_sub_interface(char *if_name, int *vlan_bitmap)
/* 如果br-vlxx不存在,报错返回 */
if(br_is_exist(br_vlname) == FALSE){
printf("[vlan]del_vlan_sub_interface: %s is not exist, error,return.\n", br_vlname);
return RET_ERR;
return RET_UNKNOWN;
}
/* brctl delif删除br-vl上的vlan子接口 */
@ -650,7 +650,7 @@ ret_code del_vlan_sub_interface(char *if_name, int *vlan_bitmap)
status = system(buf);
if(status != 0){
printf("[vlan]del_vlan_sub_if:status error. (%s)\n",strerror(errno));
return RET_ERR;
return RET_SYS_VCONFIG_ERR;
}
memset(buf, 0, SYSCALL_BUF_LEN);
@ -933,9 +933,11 @@ ret_code vlan_save_conf_file_add(interface_vlan_info *if_vlan_info)
for(vid = VID_MIN; vid <= VID_MAX; vid++){
if(vlan_bitmap_check(if_vlan_info->vlan_bitmap, vid)){
(void)if_vlan2subif(if_vlan_info->if_name, vid, subif);
printf("[vlan]save_conf_file_add: vid is %d, subif is %s\n", vid, subif);
ip_conf_file_set(subif, addr_name, addr_buff);
}
}
printf("[vlan]save_conf_file_add: save file add end.\n");
return RET_OK;
}
@ -952,7 +954,7 @@ ret_code vlan_conf_file_del(char *if_name, char *address)
status = system(buf);
if(status != 0){
printf("[vlan]vlan_conf_file_del1: status error. (%s)\n", strerror(errno));
return RET_SYSERR;
return RET_SYS_FILEOP_ERR;
}
memset(buf, 0, 100);
@ -960,7 +962,7 @@ ret_code vlan_conf_file_del(char *if_name, char *address)
status = system(buf);
if(status != 0){
printf("[vlan]vlan_conf_file_del2: status error. (%s)\n", strerror(errno));
return RET_SYSERR;
return RET_SYS_FILEOP_ERR;
}
memset(buf, 0, 100);
@ -987,6 +989,7 @@ ret_code vlan_save_conf_file_del(interface_vlan_info *if_vlan_info)
return RET_NULLP;
}
//ifnode = get_ifnode_from_global(if_vlan_info->if_name);
printf("[vlan]vlan_save_conf_file_del: begin.\n");
for(vid = VID_MIN; vid <= VID_MAX; vid++){
if(vlan_bitmap_check(if_vlan_info->vlan_bitmap, vid)){
(void)if_vlan2subif(if_vlan_info->if_name, vid, subif);
@ -998,6 +1001,7 @@ ret_code vlan_save_conf_file_del(interface_vlan_info *if_vlan_info)
}
}
}
printf("[vlan]vlan_save_conf_file_del: save file del end.\n");
return RET_OK;
}
@ -1021,7 +1025,7 @@ ret_code vlan_save_conf_file(interface_vlan_info *if_vlan_info)
}
else{
printf("[vlan]vlan_save_conf_file: OP_TYPE ERROR.return\n");
ret = RET_UNKNOWN;
ret = RET_OPTYPE_ERR;
}
return ret;
}
@ -1055,7 +1059,7 @@ ret_code refresh_if_vlan_info(interface_vlan_info *if_vlan_info)
}
else {
printf("[vlan]refresh_if_vlan_info: OP_TYPE ERROR.return\n");
ret = RET_UNKNOWN;
ret = RET_OPTYPE_ERR;
}
return ret;
@ -1105,7 +1109,7 @@ ret_code del_interface_vlan(interface_vlan_info *if_vlan_info)
}
else {
printf("[vlan]del_interface_vlan: LINK-TYPE attr(%d) input error.\n", old_attr);
return RET_UNKNOWN;
return RET_ATTR_INVALID;
}
/* 更新全局接口vlan数据结构 */
ret = refresh_if_vlan_info(if_vlan_info);
@ -1195,7 +1199,7 @@ ret_code interface_vlan_set(interface_vlan_info *if_vlan_info)
}
else{
printf("[vlan]interface_vlan_set: op_type error.\n");
ret = RET_INPUTERR;
ret = RET_OPTYPE_ERR;
}
return ret;
}
@ -1263,7 +1267,7 @@ ret_code vlan_config_json_parse(pointer input, interface_vlan_info *if_vlan_info
ret = RET_INPUTERR;
goto out;
}
cJSON *node;
cJSON *node = NULL;
for(i = 0; i < if_num; i++){
/* 给每个接口的op_type赋值 */
@ -1320,7 +1324,7 @@ ret_code vlan_config_json_parse(pointer input, interface_vlan_info *if_vlan_info
}
else {
printf("[vlan]vlan_config_json_parse: errror: is not trunk or access.\n");
ret = RET_INPUTERR;
ret = RET_ATTR_INVALID;
goto out;
}
cJSON *vId = cJSON_GetObjectItem(node, "vid");
@ -1353,7 +1357,6 @@ ret_code vlan_config_json_parse(pointer input, interface_vlan_info *if_vlan_info
ret = vid_value_chk(item->valueint);
if(ret != RET_OK){
printf("[vlan]vlan_config_json_parse: vid check failed.\n");
ret = RET_INPUTERR;
goto out;
}
vlan_bitmap_set(if_vlan_info[i].vlan_bitmap, item->valueint);
@ -1388,7 +1391,6 @@ ret_code vlan_config_proc(uint source, uint config_type,
interface_vlan_info if_vlan_info[MAX_INTERFACES] = {0};
printf("[vlan]===config-proc begin.===\n");
/* 配置下发 */
if(source == CONFIG_FROM_WEB){
ret = vlan_config_json_parse(input, if_vlan_info, &if_vl_num);
if(ret != RET_OK){
printf("[vlan]vlan_config_proc: source:%d, json parse failed(%d).\n", source, ret);
@ -1401,24 +1403,6 @@ ret_code vlan_config_proc(uint source, uint config_type,
return ret;
}
}
}
/* ÅäÖûָ´ */
else if(source == CONFIG_FROM_RECOVER1){
ret = vlan_config_json_parse(input, if_vlan_info, &if_vl_num);
if(ret != RET_OK){
printf("[vlan]vlan_config_proc: source:%d, json parse failed(%d).\n", source, ret);
return ret;
}
for(i = 0; i < if_vl_num; i++){
ret = interface_vlan_set(&if_vlan_info[i]);
if(ret != RET_OK){
printf("[vlan]vlan_config_proc: source:%d, vlan set failed(%d).\n", source, ret);
return ret;
}
}
}
return RET_OK;
}
@ -1509,7 +1493,15 @@ ret_code vlan_get_json_parse(int *interface, pointer input)
}
cJSON *ifName = cJSON_GetObjectItem(node, "if-name");
if(!ifName){
continue;
//continue;
printf("[vlan]vlan_get_json_parse: json has no ifName node.\n");
ret = RET_INPUTERR;
goto out;
}
if(NULL == ifName->valuestring){
printf("[vlan]vlan_get_json_parse: ifName->valuestring is null.\n");
ret = RET_INPUTERR;
goto out;
}
//if_vlan_info[i].if_name= ifName->valuestring;//memcpy
/* 如果找到了对应的ifnode,则对应下标置1 */
@ -1559,7 +1551,7 @@ ret_code vlan_config_format_json(int *interface, pointer output, int *output_len
cJSON_AddStringToObject(js_list , "if-name", g_if_vlan_info[i].if_name);
cJSON_AddNumberToObject(js_list , "if-attr", g_if_vlan_info[i].attr);
cJSON_AddItemToObject(js_list, "vid", js_vid = cJSON_CreateArray());
for(vid = 0; vid < MAX_VLAN;vid++){
for(vid = VID_MIN; vid <= VID_MAX;vid++){
if(vlan_bitmap_check(g_if_vlan_info[i].vlan_bitmap, vid)){
cJSON_AddItemToArray(js_vid, cJSON_CreateNumber(vid));
}
@ -1637,7 +1629,7 @@ ret_code vlan_get_from_conf_file(int *interface)
char line[FILE_BUF_LINE] = {0};
if(!(fp = fopen(ETC_NETWORK_IFS, "r"))){
printf("[vlan]vlan_get_from_conf_file: file open failed.\n");
return RET_ERR;
return RET_SYS_FILEOP_ERR;
}
//fseek(fp,0,SEEK_END);
//rewind(fp);
@ -1825,7 +1817,7 @@ ret_code vid_value_chk(int vid)
{
if(!(vid >= VID_MIN && vid <= VID_MAX)){
printf("[vlan]vid_value_chk: vid value error,return error\n");
return RET_INPUTERR;
return RET_VID_INVALID;
}
return RET_OK;
}
@ -1856,7 +1848,7 @@ ret_code vid_num_chk(char *if_name, operation_type op_type, int num)
}
if(op_type == OP_ADD && total > EACH_PORT_MAX_VLAN_NUM){
printf("[vlan]vid_num_chk: ADD operation's total vid num > EACH_PORT_MAX_VLAN_NUM\n");
return RET_INPUTERR;
return RET_VIDNUM_INVALID;
}
return RET_OK;
@ -1873,7 +1865,7 @@ ret_code if_attr_chk(interface_vlan_info *if_vlan_info)
{
if(if_vlan_info->attr != LINK_TYPE_TRUNK){
printf("[vlan]if_attr_chk: now we only support link-type trunk.\n");
return RET_INPUTERR;
return RET_ATTR_INVALID;
}
return RET_OK;
}
@ -1899,7 +1891,7 @@ ret_code op_type_add_chk(interface_vlan_info *if_vlan_info)
if(vlan_bitmap_check(if_vlan_info->vlan_bitmap, vid)
&& vlan_bitmap_check(g_if_vlan_info[ifnode].vlan_bitmap, vid)){
printf("[vlan]op_type_add_chk: Already have vid[%d], now return\n", vid);
return RET_INPUTERR;
return RET_VID_EXIST;
}
}
return RET_OK;
@ -1919,7 +1911,7 @@ ret_code op_type_del_chk(interface_vlan_info *if_vlan_info)
ifnode = get_ifnode_from_global(if_vlan_info->if_name);
if(ifnode == -1){
printf("[vlan]op_type_del_chk: get_ifnode failed.\n");
ret = RET_INPUTERR;
ret = RET_INTERFACE_NOT_EXIST;
goto out;
}
@ -1928,7 +1920,7 @@ ret_code op_type_del_chk(interface_vlan_info *if_vlan_info)
if(vlan_bitmap_check(if_vlan_info->vlan_bitmap, vid)
&& !vlan_bitmap_check(g_if_vlan_info[ifnode].vlan_bitmap, vid)){
printf("[vlan]op_type_del_chk: node[%d] do not have vid[%d], now return\n", ifnode, vid);
ret = RET_INPUTERR;
ret = RET_VID_NOT_EXIST;
goto out;
}
}
@ -1957,7 +1949,7 @@ ret_code op_type_chk(interface_vlan_info *if_vlan_info)
}
else {
printf("[vlan]op_type_chk: op_type error.\n");
ret = RET_INPUTERR;
ret = RET_OPTYPE_ERR;
}
return ret;
}
@ -1972,7 +1964,7 @@ ret_code if_name_chk(interface_vlan_info *if_vlan_info)
{
if(!(strcmp(if_vlan_info->if_name, ""))){
printf("[vlan]if_name_chk: if-name is emptyp, return error.\n");
return RET_ERR;
return RET_INPUTERR;
}
return RET_OK;
}
@ -2190,7 +2182,7 @@ ret_code vlan_config_chk(uint source,uint *config_type,
}
else {
printf("[vlan]vlan_config_chk: oper_type is unknown(%d).\n", oper_type);
ret = RET_UNKNOWN;
ret = RET_OPTYPE_ERR;
}
out:

View File

@ -383,9 +383,13 @@ int write_log_file_conf(const char *p_key_str, const char *p_value_str)
return 0;
}
int get_log_file_conf(const char *key_str, char *value_str, int value_len)
ret_code get_log_file_conf(const char *key_str, char *value_str, int value_len)
{
int ret = -1;
ret_code ret = RET_OK;
char *pos = NULL;
char *pos2 = NULL;
size_t str_len = 0;
if (fseek(g_conf_fp, 0, SEEK_SET) == -1) {
ULOG_ERR(g_log, "Seeknig config to begin is faiure:%s", strerror(errno));
return ret;
@ -394,20 +398,50 @@ int get_log_file_conf(const char *key_str, char *value_str, int value_len)
ssize_t n, n1, n2;
char *line = NULL;
char tmp_key[MAX_LINE_SZ], tmp_value[MAX_LINE_SZ];
while ((n1 = getline(&line, &n, g_conf_fp)) != -1) {
ULOG_DEBUG(g_log, "config file line:%s", line);
n2 = sscanf(line, "%s=%s", tmp_key, tmp_value);
if (n2 == 1) {
if (strcmp(tmp_key, key_str) == 0) {
strncpy(value_str, tmp_value, value_len);
ret = 0;
while ((getline(&line, &n, g_conf_fp)) != -1)
{
if (strstr(line, key_str) == NULL )
{
continue;
}
pos = strstr(line, "=");
if (pos != NULL)
{
if (strlen(pos) <= 1)
{
continue;
}
pos ++;
if ((pos2 = strstr(pos, " ")) != NULL)
{
str_len = strlen(pos) - strlen(pos2);
}
else
{
str_len = strlen(pos);
}
if (str_len >= value_len)
{
ULOG_ERR(g_log, "Get log-sched config %s, but invaild value", key_str);
ret = RET_ERR;
break;
}
} else if (n2 == EOF) {
ULOG_ERR(g_log, "Parsing level from configure is failure:%s", strerror(errno));
memset(value_str, 0, value_len);
strncpy(value_str, pos, str_len);
/* 滤除掉段尾的回车换行 */
if ('\n' == value_str[strlen(value_str)-1])
{
value_str[strlen(value_str)-1] = '\0';
}
ULOG_DEBUG(g_log, "Get log-sched config %s:%s", key_str, value_str);
break;
} else {
ULOG_DEBUG(g_log, "Unknown row:%s", line);
}
}

View File

@ -31,7 +31,7 @@ int log_level_to_str(const u8 level, char *str, u32 len);
int log_off_with_file(const char *path, const char *file_name);
void rpc_conf_proc(rpc_conn *conn, pointer input, int input_len, int need_len, rpc_cb cb, void *arg);
int write_log_file_conf(const char *p_key_str, const char *p_value_str);
int get_log_file_conf(const char *key_str, char *value_str, int value_len);
ret_code get_log_file_conf(const char *key_str, char *value_str, int value_len);
#endif

View File

@ -138,7 +138,7 @@ ret_code console_initial()
char *pos = NULL;
char *pos2 = NULL;
char ttyfile_str[128] = "";
int str_len = 0;
size_t str_len = 0;
fp = fopen(CM_LOG_CONF_CONSOLE_FILE, "r");
if (NULL == fp) {
@ -178,7 +178,6 @@ ret_code console_initial()
ttyfile_str[strlen(ttyfile_str)-1] = '\0';
}
if(modify_authorizing(ttyfile_str) == RET_OK)
{
ULOG_DEBUG(g_log, "Modify authorizing %s successed.", ttyfile_str);

View File

@ -15,12 +15,17 @@
#define MAX_EVENT_NUMBER 64
#define LOG_DEV_PTY_DIR LOG_DEV_DIR"pts/"
#define LOG_CONF_PTY_FILE_NAME "log-pty.conf"
#define LOG_CONF_KEY_PTY_LEVEL_STR "pty.level"
#define LOG_CONF_KEY_PTY_MODULE_STR "pty.module"
int g_epoll_fd = -1;
int g_watch_fd = -1;
int g_inotify_fd = -1;
pthread_t g_monitor_thread;
int access(const char *pathname, int mode);
static int write_pty_content(FILE *fp, const u8 level, const char *filter_mod, void *arg);
static void *pty_monitor_thread(void *arg)
@ -206,13 +211,25 @@ static int write_pty_content(FILE *fp, const u8 level, const char *filter_mod, v
static int config_log_pty(const log_pty_t *conf)
{
int ret = -1;
char value_str[128]="";
switch (conf->on)
{
case LOG_OFF:
stop_dev_pty_monitor();
ret = log_off_with_file(LOG_CONF_PATH, LOG_CONF_PTY_FILE_NAME);
/* off时将log-sched配置文件中pty日志级别调成默认值info即level=6 */
if (0 == ret) {
memset(value_str, 0, sizeof(value_str));
sprintf(value_str, "%u", 6);
if (write_log_file_conf(LOG_CONF_KEY_PTY_LEVEL_STR, value_str) != 0) {
ULOG_ERR(g_log, "Pty-level which is written is failure");
return -1;
}
}
break;
case LOG_ON:
if (log_conf(conf->level, LOG_CONF_PATH, LOG_CONF_PTY_FILE_NAME, conf->module,
write_pty_content, NULL) != 0) {
@ -221,6 +238,24 @@ static int config_log_pty(const log_pty_t *conf)
} else {
ret = 0;
}
/* 写pty日志级别与模块名称到log-sched配置文件 */
if (0 == ret) {
memset(value_str, 0, sizeof(value_str));
sprintf(value_str, "%u", conf->level);
if (write_log_file_conf(LOG_CONF_KEY_PTY_LEVEL_STR, value_str) != 0) {
ULOG_ERR(g_log, "Pty-level which is written is failure");
return -1;
}
memset(value_str, 0, sizeof(value_str));
sprintf(value_str, "%s", conf->module);
if (write_log_file_conf(LOG_CONF_KEY_PTY_MODULE_STR, value_str) != 0) {
ULOG_ERR(g_log, "Pty-module which is written is failure");
return -1;
}
}
break;
default:
ULOG_WARNING(g_log, "Unknown on value:%u", conf->on);
@ -244,3 +279,48 @@ void rpc_conf_log_pty(rpc_conn *conn, pointer input, int input_len, pointer data
rpc_conf_proc(conn, input, input_len, sizeof(log_pty_t), __rpc_conf_log_pty, NULL);
}
ret_code pty_initial()
{
char value_str[128]="";
uint level = 6;
char *module = NULL;
ret_code ret = RET_OK;
memset(value_str, 0, sizeof(value_str));
sprintf(value_str, "%s%s", LOG_CONF_PATH, LOG_CONF_PTY_FILE_NAME);
if (access(value_str, 0) == 0)
{
/* 获取配置 */
memset(value_str, 0, sizeof(value_str));
if (get_log_file_conf(LOG_CONF_KEY_PTY_LEVEL_STR, value_str, sizeof(value_str)) == 0)
{
level = atoi(value_str);
}
memset(value_str, 0, sizeof(value_str));
if (get_log_file_conf(LOG_CONF_KEY_PTY_MODULE_STR, value_str, sizeof(value_str)) == 0)
{
module = value_str;
}
if (log_conf((u8)level, LOG_CONF_PATH, LOG_CONF_PTY_FILE_NAME, module,
write_pty_content, NULL) != 0)
{
ULOG_ERR(g_log, "Log's pty configure which is written is failure");
ret = RET_ERR;
}
else
{
ULOG_DEBUG(g_log, "Pty config level(%u) and module(%s) successed.", level, module!=NULL?module:"NULL");
}
}
return ret;
}
ret_code pty_exit()
{
stop_dev_pty_monitor();
return RET_OK;
}

View File

@ -5,5 +5,7 @@
#include "rpc.h"
void rpc_conf_log_pty(rpc_conn *conn, pointer input, int input_len, pointer data);
ret_code pty_initial();
ret_code pty_exit();
#endif

View File

@ -24,13 +24,16 @@ FILE *g_conf_fp;
char g_conf_file[MAX_PATH_SZ];
typedef ret_code (*initial_cb)();
typedef struct _log_initial {
typedef ret_code (*exit_cb)();
typedef struct _log_opt {
char type[20];
initial_cb cb;
} log_initial_t;
initial_cb init_func;
exit_cb exit_func;
} log_opt_t;
log_initial_t g_log_initial[] = {
{"console", console_initial}
log_opt_t g_log_opt[] = {
{"console", console_initial, NULL},
{"monitor", pty_initial, pty_exit}
};
@ -77,9 +80,14 @@ int main(int argc, char **argv)
}
/* 各类配置初始化 */
for (int i = 0; i < (sizeof(g_log_initial) / sizeof(log_initial_t)); i++) {
g_log_initial[i].cb();
for (int i = 0; i < (sizeof(g_log_opt) / sizeof(log_opt_t)); i++) {
if ( NULL != g_log_opt[i].init_func) {
g_log_opt[i].init_func();
}
}
/* 重启syslog */
sev_restart();
rpc_server *server = rpc_server_create_ex(RPC_MODULE_SYSLOG_NAME);
if (server == NULL)
@ -140,6 +148,14 @@ int main(int argc, char **argv)
ULOG_INFO(g_log, "%s is shutdown", LOG_SCHED_MODULE_NAME);
END:
/* 各类配置退出前的收尾 */
for (int i = 0; i < (sizeof(g_log_opt) / sizeof(log_opt_t)); i++) {
if ( NULL != g_log_opt[i].exit_func) {
g_log_opt[i].exit_func();
}
}
if (g_conf_fp != NULL) {
fclose(g_conf_fp);
}

View File

@ -19,7 +19,7 @@ static sem_t g_sem;
static volatile int g_is_exit = 0;
static volatile sev_state_t g_sev_state = SEV_STATE_WAIT;
static void sev_restart()
void sev_restart()
{
ULOG_DEBUG(g_log, "Log service is restarting");

View File

@ -4,6 +4,7 @@
int log_sev_init();
int log_sev_exit();
int log_sev_restart();
void sev_restart();
void sev_loop();
#endif

View File

@ -40,8 +40,8 @@ PLAT_LINUX_CFLAGS += $(COMMON_CFLAGS)
PLAT_ARM64_CFLAGS += $(COMMON_CFLAGS)
COMMON_LIBS := -lcjson
LINUX_LIBS := $(COMMON_LIBS)
ARM64_LIBS := $(COMMON_LIBS)
PLAT_LINUX_LIBS := $(COMMON_LIBS)
PLAT_ARM64_LIBS := $(COMMON_LIBS)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -45,8 +45,8 @@ PLATLIB_DIR := ../../Platform/build/debug
COMMON_STD_LIB := -lcjson -lpthread -lm -lodbc
#gcc libs
ARM64_LIBS := -ldatabase-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
LINUX_LIBS := -ldatabase-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_ARM64_LIBS := -ldatabase-$(ARM64_OBJ_TARGET) $(COMMON_STD_LIB)
PLAT_LINUX_LIBS := -ldatabase-$(LINUX_OBJ_TARGET) $(COMMON_STD_LIB)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -57,11 +57,11 @@ PLATLIB_DIR := ../../Platform/build/debug
COMMON_LIBS := -lpthread -lm -lcjson -levent -ljson-c -lhiredis -lodbc -ldl
#gcc libs
ARM64_LIBS := $(COMMON_LIBS)
ARM64_LIBS += -luserauthapi-$(ARM64_OBJ_TARGET) -lredismq-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET)
PLAT_ARM64_LIBS := $(COMMON_LIBS)
PLAT_ARM64_LIBS += -luserauthapi-$(ARM64_OBJ_TARGET) -lredismq-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET)
LINUX_LIBS := $(COMMON_LIBS)
LINUX_LIBS += -luserauthapi-$(LINUX_OBJ_TARGET) -lredismq-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET)
PLAT_LINUX_LIBS := $(COMMON_LIBS)
PLAT_LINUX_LIBS += -luserauthapi-$(LINUX_OBJ_TARGET) -lredismq-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -43,8 +43,8 @@ PLAT_ARM64_LDFLAGS := -L ../../Platform/build/debug
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
#gcc libs
ARM64_LIBS := -luserauthapi-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET)
LINUX_LIBS := -lcjson -luserauthapi-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET)
PLAT_ARM64_LIBS := -luserauthapi-$(ARM64_OBJ_TARGET) -ldatabase-$(ARM64_OBJ_TARGET)
PLAT_LINUX_LIBS := -lcjson -luserauthapi-$(LINUX_OBJ_TARGET) -ldatabase-$(LINUX_OBJ_TARGET)
# this line must be at below of thus, because of...
include ../../Common/common.Makefile