Compare commits
10 Commits
develop
...
CI-aarch64
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d7f3ac99be | ||
|
|
8135b42d14 | ||
|
|
7ebb3fd553 | ||
|
|
2d75ccb51a | ||
|
|
10330f034e | ||
|
|
71a6040f8a | ||
|
|
0c02227c58 | ||
|
|
320851f683 | ||
|
|
6fb4738f19 | ||
|
|
5a89ccb0da |
216
.gitlab-ci.yml
216
.gitlab-ci.yml
@@ -1,16 +1,29 @@
|
|||||||
image: "git.mesalab.cn:7443/mesa_platform/build-env:master"
|
|
||||||
variables:
|
variables:
|
||||||
GIT_STRATEGY: "clone"
|
GIT_STRATEGY: "clone"
|
||||||
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
|
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
|
||||||
|
BUILD_IMAGE_X86_64_ROCKY8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
|
||||||
|
BUILD_IMAGE_AARCH64_ROCKY9: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64"
|
||||||
|
INSTALL_DEPENDENCY_LIBRARY: libpcap libpcap-devel
|
||||||
INSTALL_PREFIX: "/opt/MESA/lib/"
|
INSTALL_PREFIX: "/opt/MESA/lib/"
|
||||||
INSTALL_DEPENDENCY_LIBRARY: sapp-devel framework_env libpcap libpcap-devel
|
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- test
|
- test
|
||||||
|
|
||||||
google_test:
|
.build_before_script:
|
||||||
|
before_script:
|
||||||
|
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
|
||||||
|
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
|
||||||
|
- cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
|
||||||
|
- chmod +x ./ci/travis.sh
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# test on x86_64 Rocky8
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
google_test_for_x86_64_rocky8:
|
||||||
stage: test
|
stage: test
|
||||||
|
image: $BUILD_IMAGE_X86_64_ROCKY8
|
||||||
script:
|
script:
|
||||||
- cp -r test/sample_pcap /tmp
|
- cp -r test/sample_pcap /tmp
|
||||||
- ulimit -c 0
|
- ulimit -c 0
|
||||||
@@ -21,25 +34,31 @@ google_test:
|
|||||||
- ldconfig
|
- ldconfig
|
||||||
- cd /tmp
|
- cd /tmp
|
||||||
- ./gtest_jump_layer
|
- ./gtest_jump_layer
|
||||||
|
dependencies:
|
||||||
|
- branch_build_debug_for_x86_64_rocky8
|
||||||
|
- branch_build_release_for_x86_64_rocky8
|
||||||
|
- release_build_debug_for_x86_64_rocky8
|
||||||
|
- release_build_release_for_x86_64_rocky8
|
||||||
tags:
|
tags:
|
||||||
- share
|
- tsg-os-builder-el8
|
||||||
|
|
||||||
.build_by_travis:
|
###############################################################################
|
||||||
before_script:
|
# build on x86_64 Rocky8
|
||||||
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
|
###############################################################################
|
||||||
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
|
|
||||||
- cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
|
.build_by_travis_for_x86_64_rocky8:
|
||||||
- chmod +x ./ci/travis.sh
|
stage: build
|
||||||
|
image: $BUILD_IMAGE_X86_64_ROCKY8
|
||||||
|
extends: .build_before_script
|
||||||
script:
|
script:
|
||||||
- yum makecache
|
|
||||||
- ./ci/travis.sh
|
- ./ci/travis.sh
|
||||||
- cd build
|
|
||||||
tags:
|
tags:
|
||||||
- share
|
- tsg-os-builder-el8
|
||||||
|
|
||||||
branch_build_debug:
|
|
||||||
|
branch_build_debug_for_x86_64_rocky8:
|
||||||
stage: build
|
stage: build
|
||||||
extends: .build_by_travis
|
extends: .build_by_travis_for_x86_64_rocky8
|
||||||
variables:
|
variables:
|
||||||
BUILD_TYPE: Debug
|
BUILD_TYPE: Debug
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -51,11 +70,11 @@ branch_build_debug:
|
|||||||
- /^master.*$/i
|
- /^master.*$/i
|
||||||
- tags
|
- tags
|
||||||
|
|
||||||
branch_build_release:
|
branch_build_release_for_x86_64_rocky8:
|
||||||
stage: build
|
stage: build
|
||||||
variables:
|
variables:
|
||||||
BUILD_TYPE: RelWithDebInfo
|
BUILD_TYPE: RelWithDebInfo
|
||||||
extends: .build_by_travis
|
extends: .build_by_travis_for_x86_64_rocky8
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||||
@@ -65,57 +84,15 @@ branch_build_release:
|
|||||||
- /^master.*$/i
|
- /^master.*$/i
|
||||||
- tags
|
- tags
|
||||||
|
|
||||||
develop_build_debug:
|
release_build_debug_for_x86_64_rocky8:
|
||||||
stage: build
|
|
||||||
extends: .build_by_travis
|
|
||||||
variables:
|
|
||||||
BUILD_TYPE: Debug
|
|
||||||
PACKAGE: 1
|
|
||||||
UPLOAD_RPM: 1
|
|
||||||
ASAN_OPTION: ADDRESS
|
|
||||||
TESTING_VERSION_BUILD: 1
|
|
||||||
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
|
||||||
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
|
||||||
artifacts:
|
|
||||||
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-debug"
|
|
||||||
paths:
|
|
||||||
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
|
||||||
- /builds/MESA_framework/mesa_jump_layer/build/src/libMESA_jump_layer.so
|
|
||||||
- build/*.rpm
|
|
||||||
only:
|
|
||||||
- /^develop.*$/i
|
|
||||||
- /^master.*$/i
|
|
||||||
|
|
||||||
develop_build_release:
|
|
||||||
stage: build
|
|
||||||
extends: .build_by_travis
|
|
||||||
variables:
|
|
||||||
BUILD_TYPE: RelWithDebInfo
|
|
||||||
PACKAGE: 1
|
|
||||||
UPLOAD_RPM: 1
|
|
||||||
ASAN_OPTION: "OFF"
|
|
||||||
TESTING_VERSION_BUILD: 1
|
|
||||||
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
|
||||||
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
|
||||||
artifacts:
|
|
||||||
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
|
||||||
paths:
|
|
||||||
- build/*.rpm
|
|
||||||
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
|
||||||
- /builds/MESA_framework/mesa_jump_layer/build/src/libMESA_jump_layer.so
|
|
||||||
only:
|
|
||||||
- /^develop.*$/i
|
|
||||||
- /^master.*$/i
|
|
||||||
|
|
||||||
release_build_debug:
|
|
||||||
stage: build
|
stage: build
|
||||||
variables:
|
variables:
|
||||||
BUILD_TYPE: Debug
|
BUILD_TYPE: Debug
|
||||||
PACKAGE: 1
|
PACKAGE: 1
|
||||||
UPLOAD_RPM: 1
|
UPLOAD_RPM: 1
|
||||||
PULP3_REPO_NAME: framework-stable-x86_64.el7
|
PULP3_REPO_NAME: framework-stable-x86_64.el8
|
||||||
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
||||||
extends: .build_by_travis
|
extends: .build_by_travis_for_x86_64_rocky8
|
||||||
artifacts:
|
artifacts:
|
||||||
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||||
paths:
|
paths:
|
||||||
@@ -125,17 +102,120 @@ release_build_debug:
|
|||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
|
|
||||||
release_build_release:
|
release_build_release_for_x86_64_rocky8:
|
||||||
stage: build
|
stage: build
|
||||||
variables:
|
variables:
|
||||||
BUILD_TYPE: RelWithDebInfo
|
BUILD_TYPE: RelWithDebInfo
|
||||||
PACKAGE: 1
|
PACKAGE: 1
|
||||||
UPLOAD_RPM: 1
|
UPLOAD_RPM: 1
|
||||||
UPLOAD_SYMBOL_FILES: 1
|
|
||||||
SYMBOL_TARGET: libMESA_jump_layer
|
SYMBOL_TARGET: libMESA_jump_layer
|
||||||
PULP3_REPO_NAME: framework-stable-x86_64.el7
|
PULP3_REPO_NAME: framework-stable-x86_64.el8
|
||||||
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
||||||
extends: .build_by_travis
|
extends: .build_by_travis_for_x86_64_rocky8
|
||||||
|
artifacts:
|
||||||
|
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||||
|
paths:
|
||||||
|
- build/*.rpm
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/src/libMESA_jump_layer.so
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# test on aarch64 Rocky9
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
google_test_for_aarch64_rocky9:
|
||||||
|
stage: test
|
||||||
|
image: $BUILD_IMAGE_AARCH64_ROCKY9
|
||||||
|
script:
|
||||||
|
- cp -r test/sample_pcap /tmp
|
||||||
|
- ulimit -c 0
|
||||||
|
- cp /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer /tmp/
|
||||||
|
- mkdir -p /opt/MESA/lib
|
||||||
|
- cp /builds/MESA_framework/mesa_jump_layer/build/src/libMESA_jump_layer.so /opt/MESA/lib/
|
||||||
|
- echo "/opt/MESA/lib" >> /etc/ld.so.conf
|
||||||
|
- ldconfig
|
||||||
|
- cd /tmp
|
||||||
|
- ./gtest_jump_layer
|
||||||
|
dependencies:
|
||||||
|
- branch_build_debug_for_aarch64_rocky9
|
||||||
|
- branch_build_release_for_aarch64_rocky9
|
||||||
|
- release_build_debug_for_aarch64_rocky9
|
||||||
|
- release_build_release_for_aarch64_rocky9
|
||||||
|
tags:
|
||||||
|
- tsg-os-builder-aarch64
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# build on aarch64 Rocky9
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
.build_by_travis_for_aarch64_rocky9:
|
||||||
|
stage: build
|
||||||
|
image: $BUILD_IMAGE_AARCH64_ROCKY9
|
||||||
|
extends: .build_before_script
|
||||||
|
script:
|
||||||
|
- ./ci/travis.sh
|
||||||
|
tags:
|
||||||
|
- tsg-os-builder-aarch64
|
||||||
|
|
||||||
|
|
||||||
|
branch_build_debug_for_aarch64_rocky9:
|
||||||
|
stage: build
|
||||||
|
extends: .build_by_travis_for_aarch64_rocky9
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: Debug
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/src/libMESA_jump_layer.so
|
||||||
|
except:
|
||||||
|
- /^develop.*$/i
|
||||||
|
- /^master.*$/i
|
||||||
|
- tags
|
||||||
|
|
||||||
|
branch_build_release_for_aarch64_rocky9:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: RelWithDebInfo
|
||||||
|
extends: .build_by_travis_for_aarch64_rocky9
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/src/libMESA_jump_layer.so
|
||||||
|
except:
|
||||||
|
- /^develop.*$/i
|
||||||
|
- /^master.*$/i
|
||||||
|
- tags
|
||||||
|
|
||||||
|
release_build_debug_for_aarch64_rocky9:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: Debug
|
||||||
|
PACKAGE: 1
|
||||||
|
UPLOAD_RPM: 1
|
||||||
|
PULP3_REPO_NAME: framework-stable-aarch64.el9
|
||||||
|
PULP3_DIST_NAME: framework-stable-aarch64.el9
|
||||||
|
extends: .build_by_travis_for_aarch64_rocky9
|
||||||
|
artifacts:
|
||||||
|
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||||
|
paths:
|
||||||
|
- build/*.rpm
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||||
|
- /builds/MESA_framework/mesa_jump_layer/build/src/libMESA_jump_layer.so
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
|
||||||
|
release_build_release_for_aarch64_rocky9:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: RelWithDebInfo
|
||||||
|
PACKAGE: 1
|
||||||
|
UPLOAD_RPM: 1
|
||||||
|
SYMBOL_TARGET: libMESA_jump_layer
|
||||||
|
PULP3_REPO_NAME: framework-stable-aarch64.el9
|
||||||
|
PULP3_DIST_NAME: framework-stable-aarch64.el9
|
||||||
|
extends: .build_by_travis_for_aarch64_rocky9
|
||||||
artifacts:
|
artifacts:
|
||||||
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||||
paths:
|
paths:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required (VERSION 2.8)
|
cmake_minimum_required (VERSION 2.8...3.10)
|
||||||
|
|
||||||
set(lib_name MESA_jump_layer)
|
set(lib_name MESA_jump_layer)
|
||||||
|
|
||||||
|
|||||||
11
ci/travis.sh
11
ci/travis.sh
@@ -37,10 +37,6 @@ if [ -n "${INSTALL_DEPENDENCY_LIBRARY}" ]; then
|
|||||||
yum install -y $INSTALL_DEPENDENCY_LIBRARY
|
yum install -y $INSTALL_DEPENDENCY_LIBRARY
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $ASAN_OPTION ];then
|
|
||||||
source /opt/rh/devtoolset-7/enable
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir build || true
|
mkdir build || true
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
@@ -61,10 +57,3 @@ if [ -n "${UPLOAD_RPM}" ]; then
|
|||||||
cp ~/rpm_upload_tools.py ./
|
cp ~/rpm_upload_tools.py ./
|
||||||
python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm
|
python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${UPLOAD_SYMBOL_FILES}" ]; then
|
|
||||||
rpm -i $SYMBOL_TARGET*debuginfo*.rpm
|
|
||||||
_symbol_file=`find /usr/lib/debug/ -name "$SYMBOL_TARGET*.so*.debug"`
|
|
||||||
cp $_symbol_file ${_symbol_file}info.${CI_COMMIT_SHORT_SHA}
|
|
||||||
sentry-cli upload-dif -t elf ${_symbol_file}info.${CI_COMMIT_SHORT_SHA}
|
|
||||||
fi
|
|
||||||
|
|||||||
@@ -12,15 +12,15 @@ set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
|
|||||||
set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}.${VERSION_BUILD}")
|
set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}.${VERSION_BUILD}")
|
||||||
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||||
set(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILD}")
|
set(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILD}")
|
||||||
execute_process(COMMAND bash -c "echo -ne \"`uname -r | awk -F'.' '{print $5\".\"$6\".\"$7}'`\"" OUTPUT_VARIABLE SYSTEM_VERSION)
|
|
||||||
|
|
||||||
# RPM Build
|
# RPM Build
|
||||||
set(CPACK_GENERATOR "RPM")
|
set(CPACK_GENERATOR "RPM")
|
||||||
|
set(CPACK_RPM_AUTO_GENERATED_FILE_NAME ON)
|
||||||
|
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||||
set(CPACK_RPM_PACKAGE_VENDOR "MESA")
|
set(CPACK_RPM_PACKAGE_VENDOR "MESA")
|
||||||
set(CPACK_RPM_PACKAGE_AUTOREQPROV "yes")
|
set(CPACK_RPM_PACKAGE_AUTOREQPROV "yes")
|
||||||
set(CPACK_RPM_PACKAGE_RELEASE_LIBRARY "on")
|
set(CPACK_RPM_PACKAGE_RELEASE_DIST "on")
|
||||||
set(CPACK_RPM_DEBUGINFO_PACKAGE "on")
|
set(CPACK_RPM_DEBUGINFO_PACKAGE "on")
|
||||||
set(CPACK_RPM_PACKAGE_DEBUG 1)
|
|
||||||
|
|
||||||
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||||
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
|
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
|
||||||
@@ -29,17 +29,12 @@ set(CPACK_COMPONENT_HEADER_DISPLAY_NAME "develop")
|
|||||||
|
|
||||||
set(CPACK_COMPONENT_LIBRARIES_REQUIRED TRUE)
|
set(CPACK_COMPONENT_LIBRARIES_REQUIRED TRUE)
|
||||||
set(CPACK_RPM_LIBRARIES_PACKAGE_NAME ${MY_RPM_NAME_PREFIX})
|
set(CPACK_RPM_LIBRARIES_PACKAGE_NAME ${MY_RPM_NAME_PREFIX})
|
||||||
set(CPACK_RPM_LIBRARIES_FILE_NAME "${CPACK_RPM_LIBRARIES_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
set(CPACK_COMPONENT_PROFILE_GROUP "LIBRARIES")
|
||||||
set(CPACK_RPM_LIBRARIES_DEBUGINFO_FILE_NAME "${CPACK_RPM_LIBRARIES_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
set(CPACK_COMPONENT_LIBRARIES_GROUP "LIBRARIES")
|
||||||
|
|
||||||
set(CPACK_COMPONENT_PROFILE_GROUP "libraries")
|
|
||||||
set(CPACK_COMPONENT_LIBRARIES_GROUP "libraries")
|
|
||||||
|
|
||||||
set(CPACK_COMPONENT_HEADER_REQUIRED TRUE)
|
set(CPACK_COMPONENT_HEADER_REQUIRED TRUE)
|
||||||
set(CPACK_RPM_HEADER_PACKAGE_NAME "${MY_RPM_NAME_PREFIX}-devel")
|
set(CPACK_RPM_HEADER_PACKAGE_NAME "${MY_RPM_NAME_PREFIX}-devel")
|
||||||
set(CPACK_RPM_HEADER_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
set(CPACK_COMPONENT_HEADER_GROUP "HEADER")
|
||||||
set(CPACK_RPM_HEADER_DEBUGINFO_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
|
||||||
set(CPACK_COMPONENT_HEADER_GROUP "header")
|
|
||||||
|
|
||||||
set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARIES_PACKAGE_NAME})
|
set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARIES_PACKAGE_NAME})
|
||||||
set(CPACK_RPM_HEADER_PACKAGE_CONFLICTS ${CPACK_RPM_HEADER_PACKAGE_NAME})
|
set(CPACK_RPM_HEADER_PACKAGE_CONFLICTS ${CPACK_RPM_HEADER_PACKAGE_NAME})
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8...3.10)
|
||||||
|
|
||||||
set(MESA_SDK_PREFIX "/opt/MESA" CACHE STRING "MESA Framework Prefix")
|
set(MESA_SDK_PREFIX "/opt/MESA" CACHE STRING "MESA Framework Prefix")
|
||||||
|
|
||||||
@@ -11,7 +11,8 @@ include_directories(${PROJECT_SOURCE_DIR}/include/)
|
|||||||
|
|
||||||
LINK_DIRECTORIES(/opt/MESA/lib)
|
LINK_DIRECTORIES(/opt/MESA/lib)
|
||||||
|
|
||||||
add_definitions(-D_BSD_SOURCE -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
|
#add_definitions(-D_BSD_SOURCE -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
|
||||||
|
add_definitions(-D_DEFAULT_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
|
||||||
add_definitions(-DSAPP_V4=1)
|
add_definitions(-DSAPP_V4=1)
|
||||||
|
|
||||||
add_definitions(-fPIC)
|
add_definitions(-fPIC)
|
||||||
|
|||||||
@@ -211,6 +211,15 @@ static int __mjl_gtp_calc_gtp_hdr_len(const struct gtp_hdr *gtph)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(gtph->msg_type != 0xFF){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ntohs(gtph->len) > 1460 || ntohs(gtph->len) < 40)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if(gtph->flags & (GTP_HDR_FLAG_SEQ_NUM | GTP_HDR_FLAG_N_PDU | GTP_HDR_FLAG_NEXT_EXT_HDR)){
|
if(gtph->flags & (GTP_HDR_FLAG_SEQ_NUM | GTP_HDR_FLAG_N_PDU | GTP_HDR_FLAG_NEXT_EXT_HDR)){
|
||||||
//todo, parse and get seq field
|
//todo, parse and get seq field
|
||||||
p_ext_hdr += 2; //seq field length is 2 bytes
|
p_ext_hdr += 2; //seq field length is 2 bytes
|
||||||
@@ -281,9 +290,9 @@ static int gtp_jump_to_layer(const char *raw_data, int raw_layer_type, int expe
|
|||||||
|
|
||||||
next_ip_layer_hdr = (unsigned char *)raw_data + gtp_hdr_len;
|
next_ip_layer_hdr = (unsigned char *)raw_data + gtp_hdr_len;
|
||||||
|
|
||||||
if((*next_ip_layer_hdr & 0x40) == 0x40){
|
if((*next_ip_layer_hdr & 0xF0) == 0x40){
|
||||||
skip_len = ipv4_jump_to_layer((char *)next_ip_layer_hdr, __ADDR_TYPE_IP_PAIR_V4, expect_layer_type);
|
skip_len = ipv4_jump_to_layer((char *)next_ip_layer_hdr, __ADDR_TYPE_IP_PAIR_V4, expect_layer_type);
|
||||||
}else if((*next_ip_layer_hdr & 0x60) == 0x60){
|
}else if((*next_ip_layer_hdr & 0xF0) == 0x60){
|
||||||
skip_len = ipv6_jump_to_layer((char *)next_ip_layer_hdr, __ADDR_TYPE_IP_PAIR_V6, expect_layer_type);
|
skip_len = ipv6_jump_to_layer((char *)next_ip_layer_hdr, __ADDR_TYPE_IP_PAIR_V6, expect_layer_type);
|
||||||
}else{
|
}else{
|
||||||
snprintf(_g_mesa_jump_layer_last_error, PIPE_BUF, "gtp_jump_to_layer() error, unsupport type in GTP, 0x%x!", (*next_ip_layer_hdr));
|
snprintf(_g_mesa_jump_layer_last_error, PIPE_BUF, "gtp_jump_to_layer() error, unsupport type in GTP, 0x%x!", (*next_ip_layer_hdr));
|
||||||
@@ -384,6 +393,10 @@ static int __mjl_parse_l2tpv2_hdr(const struct l2tp_hdr_v2 *pl2tphdrv2, struct l
|
|||||||
|
|
||||||
if(pl2tphdrv2->offset_present){
|
if(pl2tphdrv2->offset_present){
|
||||||
offset_size = ntohs(*((unsigned short *)ptr));
|
offset_size = ntohs(*((unsigned short *)ptr));
|
||||||
|
if(offset_size > 1460)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
ptr += sizeof(short); /* 2 byte fix len offset size */
|
ptr += sizeof(short); /* 2 byte fix len offset size */
|
||||||
ptr += offset_size; /* var bytes offset value length */
|
ptr += offset_size; /* var bytes offset value length */
|
||||||
}
|
}
|
||||||
@@ -1414,9 +1427,24 @@ const void *MESA_jump_layer_greedy(const void *raw_data, int raw_layer_type, int
|
|||||||
|
|
||||||
case __ADDR_TYPE_IP_PAIR_V6:
|
case __ADDR_TYPE_IP_PAIR_V6:
|
||||||
{
|
{
|
||||||
//TODO2,
|
const struct mesa_ip6_hdr *ip6hdr = (const struct mesa_ip6_hdr *)expect_layer;
|
||||||
|
if(IPPROTO_UDP == ip6hdr->ip6_nxt_hdr){
|
||||||
|
new_next_layer_data = (char *)expect_layer + sizeof(struct mesa_ip6_hdr);
|
||||||
|
new_raw_layer_type = ADDR_TYPE_UDP; /* IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ƫ<EFBFBD><C6AB> */
|
||||||
|
}else if(IPPROTO_GRE == ip6hdr->ip6_nxt_hdr){
|
||||||
|
new_next_layer_data = (char *)expect_layer + sizeof(struct mesa_ip6_hdr);
|
||||||
|
new_raw_layer_type = ADDR_TYPE_GRE; /* GRE */
|
||||||
|
}else if(IPPROTO_IPIP == ip6hdr->ip6_nxt_hdr){
|
||||||
|
new_next_layer_data = (char *)expect_layer + sizeof(struct mesa_ip6_hdr);
|
||||||
|
new_raw_layer_type = ADDR_TYPE_IPV4;
|
||||||
|
}else if(IPPROTO_IPIP == ip6hdr->ip6_nxt_hdr){
|
||||||
|
new_next_layer_data = (char *)expect_layer + sizeof(struct mesa_ip6_hdr);
|
||||||
|
new_raw_layer_type = ADDR_TYPE_IPV6;
|
||||||
|
}else{
|
||||||
|
//TODO 2, IPIP, L2TPv3
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ADDR_TYPE_UDP:
|
case ADDR_TYPE_UDP:
|
||||||
@@ -1463,7 +1491,7 @@ const char *MESA_jump_layer_ipv4_ntop(const struct ip *ip4_hdr, char *out_buf, i
|
|||||||
inner_thdr = (struct mesa_tcp_hdr *)((char *)ip4_hdr + ip4_hdr->ip_hl*4);
|
inner_thdr = (struct mesa_tcp_hdr *)((char *)ip4_hdr + ip4_hdr->ip_hl*4);
|
||||||
sport = ntohs(inner_thdr->th_sport);
|
sport = ntohs(inner_thdr->th_sport);
|
||||||
dport = ntohs(inner_thdr->th_dport);
|
dport = ntohs(inner_thdr->th_dport);
|
||||||
}else if(IPPROTO_UDP){
|
}else if(IPPROTO_UDP == inner_ip_proto){
|
||||||
inner_uhdr = (struct mesa_udp_hdr *)((char *)ip4_hdr + ip4_hdr->ip_hl*4);
|
inner_uhdr = (struct mesa_udp_hdr *)((char *)ip4_hdr + ip4_hdr->ip_hl*4);
|
||||||
sport = ntohs(inner_uhdr->uh_sport);
|
sport = ntohs(inner_uhdr->uh_sport);
|
||||||
dport = ntohs(inner_uhdr->uh_dport);
|
dport = ntohs(inner_uhdr->uh_dport);
|
||||||
@@ -1496,7 +1524,7 @@ const char *MESA_jump_layer_ipv6_ntop(const struct ip6_hdr *ip6_hdr, char *out_b
|
|||||||
inner_thdr = (struct tcphdr *)((char *)ip6_hdr + sizeof(struct ip6_hdr));
|
inner_thdr = (struct tcphdr *)((char *)ip6_hdr + sizeof(struct ip6_hdr));
|
||||||
sport = inner_thdr->source;
|
sport = inner_thdr->source;
|
||||||
dport = inner_thdr->dest;
|
dport = inner_thdr->dest;
|
||||||
}else if(IPPROTO_UDP){
|
}else if(IPPROTO_UDP== inner_ip_proto){
|
||||||
inner_uhdr = (struct udphdr *)((char *)ip6_hdr + sizeof(struct ip6_hdr));
|
inner_uhdr = (struct udphdr *)((char *)ip6_hdr + sizeof(struct ip6_hdr));
|
||||||
sport = inner_uhdr->source;
|
sport = inner_uhdr->source;
|
||||||
dport = inner_uhdr->dest;
|
dport = inner_uhdr->dest;
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8...3.10)
|
||||||
|
|
||||||
include_directories(${CMAKE_SOURCE_DIR}/inc)
|
include_directories(${CMAKE_SOURCE_DIR}/inc)
|
||||||
include_directories(${MESA_SDK_PREFIX}/include)
|
include_directories(${MESA_SDK_PREFIX}/include)
|
||||||
include_directories(${MESA_SDK_PREFIX}/include/MESA)
|
include_directories(${MESA_SDK_PREFIX}/include/MESA)
|
||||||
|
|
||||||
|
|
||||||
add_definitions(-D_BSD_SOURCE -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
|
# add_definitions(-D_BSD_SOURCE -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
|
||||||
|
add_definitions(-D_DEFAULT_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H)
|
||||||
add_definitions(-fPIC -std=c++11)
|
add_definitions(-fPIC -std=c++11)
|
||||||
LINK_DIRECTORIES(/opt/MESA/lib)
|
LINK_DIRECTORIES(/opt/MESA/lib)
|
||||||
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
|
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src)
|
||||||
|
|
||||||
add_executable(gtest_jump_layer gtest_jump_layer.cpp)
|
add_executable(gtest_jump_layer gtest_jump_layer.cpp)
|
||||||
target_link_libraries(gtest_jump_layer pcap gtest-static MESA_jump_layer)
|
target_link_libraries(gtest_jump_layer pcap gtest-static ${lib_name}_shared)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ static int jump_check_udp_pkt(const struct udphdr *uhdr, unsigned short expect_u
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int jump_check_vlan_pkt(const void *vlan_hdr, unsigned int expect_vlan_hex_data)
|
int jump_check_vlan_pkt(const void *vlan_hdr, unsigned int expect_vlan_hex_data)
|
||||||
{
|
{
|
||||||
if(memcmp(vlan_hdr, &expect_vlan_hex_data, sizeof(int)) != 0){
|
if(memcmp(vlan_hdr, &expect_vlan_hex_data, sizeof(int)) != 0){
|
||||||
printf("\033[1;31;40mMESA_net_jump_to_layer(): vlan header error!\033[0m\n");
|
printf("\033[1;31;40mMESA_net_jump_to_layer(): vlan header error!\033[0m\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user