Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fb4738f19 | ||
|
|
5a89ccb0da | ||
|
|
1b30b6d6a2 | ||
|
|
e1bf15c222 | ||
|
|
e683d478a8 | ||
|
|
7a0b7d2316 |
218
.gitlab-ci.yml
218
.gitlab-ci.yml
@@ -1,16 +1,18 @@
|
||||
image: "git.mesalab.cn:7443/mesa_platform/build-env:master"
|
||||
variables:
|
||||
GIT_STRATEGY: "clone"
|
||||
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
|
||||
BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:master"
|
||||
BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
|
||||
INSTALL_DEPENDENCY_LIBRARY: sapp-devel framework_env libpcap libpcap-devel
|
||||
INSTALL_PREFIX: "/opt/MESA/lib/"
|
||||
INSTALL_DEPENDENCY_LIBRARY: sapp-devel framework_env libpcap libpcap-devel
|
||||
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
|
||||
google_test:
|
||||
google_test_for_centos7:
|
||||
stage: test
|
||||
image: $BUILD_IMAGE_CENTOS7
|
||||
script:
|
||||
- cp -r test/sample_pcap /tmp
|
||||
- ulimit -c 0
|
||||
@@ -21,25 +23,75 @@ google_test:
|
||||
- ldconfig
|
||||
- cd /tmp
|
||||
- ./gtest_jump_layer
|
||||
dependencies:
|
||||
- branch_build_debug_for_centos7
|
||||
- branch_build_release_for_centos7
|
||||
- develop_build_debug_for_centos7
|
||||
- develop_build_release_for_centos7
|
||||
- release_build_debug_for_centos7
|
||||
- release_build_release_for_centos7
|
||||
tags:
|
||||
- share
|
||||
|
||||
.build_by_travis:
|
||||
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
|
||||
google_test_for_centos8:
|
||||
stage: test
|
||||
image: $BUILD_IMAGE_CENTOS8
|
||||
script:
|
||||
- yum makecache
|
||||
- ./ci/travis.sh
|
||||
- cd build
|
||||
- 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_centos8
|
||||
- branch_build_release_for_centos8
|
||||
- develop_build_debug_for_centos8
|
||||
- develop_build_release_for_centos8
|
||||
- release_build_debug_for_centos8
|
||||
- release_build_release_for_centos8
|
||||
tags:
|
||||
- share
|
||||
- share
|
||||
|
||||
branch_build_debug:
|
||||
.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
|
||||
- sed -i 's/\/8\//\/7\//g' /etc/yum.repos.d/repo.internal.geedge.net.repo
|
||||
- yum makecache
|
||||
- chmod +x ./ci/travis.sh
|
||||
- yum install -y elfutils-libelf-devel
|
||||
|
||||
.build_by_travis_for_centos7:
|
||||
stage: build
|
||||
extends: .build_by_travis
|
||||
image: $BUILD_IMAGE_CENTOS7
|
||||
extends: .build_before_script
|
||||
script:
|
||||
- yum install -y libmnl-devel
|
||||
- yum install -y libnfnetlink-devel
|
||||
- ./ci/travis.sh
|
||||
tags:
|
||||
- share
|
||||
|
||||
.build_by_travis_for_centos8:
|
||||
stage: build
|
||||
image: $BUILD_IMAGE_CENTOS8
|
||||
extends: .build_before_script
|
||||
script:
|
||||
- dnf --enablerepo=powertools install -y libmnl-devel
|
||||
- dnf --enablerepo=powertools install -y libnfnetlink-devel
|
||||
- ./ci/travis.sh
|
||||
tags:
|
||||
- share
|
||||
|
||||
|
||||
branch_build_debug_for_centos7:
|
||||
stage: build
|
||||
extends: .build_by_travis_for_centos7
|
||||
variables:
|
||||
BUILD_TYPE: Debug
|
||||
artifacts:
|
||||
@@ -51,11 +103,11 @@ branch_build_debug:
|
||||
- /^master.*$/i
|
||||
- tags
|
||||
|
||||
branch_build_release:
|
||||
branch_build_release_for_centos7:
|
||||
stage: build
|
||||
variables:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
extends: .build_by_travis
|
||||
extends: .build_by_travis_for_centos7
|
||||
artifacts:
|
||||
paths:
|
||||
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||
@@ -65,9 +117,9 @@ branch_build_release:
|
||||
- /^master.*$/i
|
||||
- tags
|
||||
|
||||
develop_build_debug:
|
||||
develop_build_debug_for_centos7:
|
||||
stage: build
|
||||
extends: .build_by_travis
|
||||
extends: .build_by_travis_for_centos7
|
||||
variables:
|
||||
BUILD_TYPE: Debug
|
||||
PACKAGE: 1
|
||||
@@ -77,7 +129,7 @@ develop_build_debug:
|
||||
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
||||
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
||||
artifacts:
|
||||
name: MESA_jump_layer-$CI_COMMIT_REF_NAME-debug"
|
||||
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
|
||||
@@ -86,9 +138,9 @@ develop_build_debug:
|
||||
- /^develop.*$/i
|
||||
- /^master.*$/i
|
||||
|
||||
develop_build_release:
|
||||
develop_build_release_for_centos7:
|
||||
stage: build
|
||||
extends: .build_by_travis
|
||||
extends: .build_by_travis_for_centos7
|
||||
variables:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
PACKAGE: 1
|
||||
@@ -98,7 +150,7 @@ develop_build_release:
|
||||
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
||||
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
||||
artifacts:
|
||||
name: MESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||
paths:
|
||||
- build/*.rpm
|
||||
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||
@@ -107,7 +159,7 @@ develop_build_release:
|
||||
- /^develop.*$/i
|
||||
- /^master.*$/i
|
||||
|
||||
release_build_debug:
|
||||
release_build_debug_for_centos7:
|
||||
stage: build
|
||||
variables:
|
||||
BUILD_TYPE: Debug
|
||||
@@ -115,9 +167,9 @@ release_build_debug:
|
||||
UPLOAD_RPM: 1
|
||||
PULP3_REPO_NAME: framework-stable-x86_64.el7
|
||||
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
||||
extends: .build_by_travis
|
||||
extends: .build_by_travis_for_centos7
|
||||
artifacts:
|
||||
name: MESA_jump_layer-$CI_COMMIT_REF_NAME-debug"
|
||||
name: libMESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||
paths:
|
||||
- build/*.rpm
|
||||
- /builds/MESA_framework/mesa_jump_layer/build/test/gtest_jump_layer
|
||||
@@ -125,7 +177,7 @@ release_build_debug:
|
||||
only:
|
||||
- tags
|
||||
|
||||
release_build_release:
|
||||
release_build_release_for_centos7:
|
||||
stage: build
|
||||
variables:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
@@ -135,12 +187,120 @@ release_build_release:
|
||||
SYMBOL_TARGET: libMESA_jump_layer
|
||||
PULP3_REPO_NAME: framework-stable-x86_64.el7
|
||||
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
||||
extends: .build_by_travis
|
||||
extends: .build_by_travis_for_centos7
|
||||
artifacts:
|
||||
name: MESA_jump_layer-$CI_COMMIT_REF_NAME-release"
|
||||
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
|
||||
|
||||
branch_build_debug_for_centos8:
|
||||
stage: build
|
||||
extends: .build_by_travis_for_centos8
|
||||
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_centos8:
|
||||
stage: build
|
||||
variables:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
extends: .build_by_travis_for_centos8
|
||||
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
|
||||
|
||||
develop_build_debug_for_centos8:
|
||||
stage: build
|
||||
extends: .build_by_travis_for_centos8
|
||||
variables:
|
||||
BUILD_TYPE: Debug
|
||||
PACKAGE: 1
|
||||
UPLOAD_RPM: 1
|
||||
ASAN_OPTION: ADDRESS
|
||||
TESTING_VERSION_BUILD: 1
|
||||
PULP3_REPO_NAME: framework-testing-x86_64.el8
|
||||
PULP3_DIST_NAME: framework-testing-x86_64.el8
|
||||
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_for_centos8:
|
||||
stage: build
|
||||
extends: .build_by_travis_for_centos8
|
||||
variables:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
PACKAGE: 1
|
||||
UPLOAD_RPM: 1
|
||||
ASAN_OPTION: "OFF"
|
||||
TESTING_VERSION_BUILD: 1
|
||||
PULP3_REPO_NAME: framework-testing-x86_64.el8
|
||||
PULP3_DIST_NAME: framework-testing-x86_64.el8
|
||||
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_for_centos8:
|
||||
stage: build
|
||||
variables:
|
||||
BUILD_TYPE: Debug
|
||||
PACKAGE: 1
|
||||
UPLOAD_RPM: 1
|
||||
PULP3_REPO_NAME: framework-stable-x86_64.el8
|
||||
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
||||
extends: .build_by_travis_for_centos8
|
||||
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_centos8:
|
||||
stage: build
|
||||
variables:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
PACKAGE: 1
|
||||
UPLOAD_RPM: 1
|
||||
UPLOAD_SYMBOL_FILES: 1
|
||||
SYMBOL_TARGET: libMESA_jump_layer
|
||||
PULP3_REPO_NAME: framework-stable-x86_64.el8
|
||||
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
||||
extends: .build_by_travis_for_centos8
|
||||
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
|
||||
@@ -37,7 +37,7 @@ if [ -n "${INSTALL_DEPENDENCY_LIBRARY}" ]; then
|
||||
yum install -y $INSTALL_DEPENDENCY_LIBRARY
|
||||
fi
|
||||
|
||||
if [ $ASAN_OPTION ];then
|
||||
if [ $ASAN_OPTION ] && [ -f "/opt/rh/devtoolset-7/enable" ] ;then
|
||||
source /opt/rh/devtoolset-7/enable
|
||||
fi
|
||||
|
||||
|
||||
@@ -12,15 +12,15 @@ set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}.${VERSION_BUILD}")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
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
|
||||
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_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_PACKAGE_DEBUG 1)
|
||||
|
||||
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
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_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_RPM_LIBRARIES_DEBUGINFO_FILE_NAME "${CPACK_RPM_LIBRARIES_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
||||
|
||||
set(CPACK_COMPONENT_PROFILE_GROUP "libraries")
|
||||
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_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_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_COMPONENT_HEADER_GROUP "HEADER")
|
||||
|
||||
set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARIES_PACKAGE_NAME})
|
||||
set(CPACK_RPM_HEADER_PACKAGE_CONFLICTS ${CPACK_RPM_HEADER_PACKAGE_NAME})
|
||||
|
||||
@@ -19,9 +19,18 @@ add_definitions(-std=c++11)
|
||||
|
||||
set(SRC MESA_jump_layer.cpp)
|
||||
|
||||
add_library(${lib_name} SHARED ${SRC})
|
||||
target_link_libraries(${lib_name} m)
|
||||
# Shared Library Output
|
||||
add_library(${lib_name}_shared SHARED ${SRC})
|
||||
target_link_libraries(${lib_name}_shared m)
|
||||
if(DEFINED MESA_SHARED_INSTALL_DIR)
|
||||
set_target_properties(${lib_name}_shared PROPERTIES OUTPUT_NAME ${lib_name} LIBRARY_OUTPUT_DIRECTORY ${MESA_SHARED_INSTALL_DIR})
|
||||
else()
|
||||
set_target_properties(${lib_name}_shared PROPERTIES OUTPUT_NAME ${lib_name})
|
||||
endif()
|
||||
|
||||
target_link_libraries(${lib_name}_shared m)
|
||||
|
||||
install(FILES ${CMAKE_BINARY_DIR}/src/libMESA_jump_layer.so DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
|
||||
install(TARGETS ${lib_name}_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
|
||||
#install(FILES ${CMAKE_BINARY_DIR}/src/libMESA_jump_layer.so DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
|
||||
|
||||
include(Package)
|
||||
|
||||
@@ -1187,6 +1187,7 @@ static int vlan8021q_jump_to_layer(const char *raw_data, int raw_layer_type, in
|
||||
/* QinQ */
|
||||
case ETH_P_8021Q:
|
||||
snprintf(_g_mesa_jump_layer_last_error, PIPE_BUF, "vlan8021q_jump_to_layer(): multiple VLAN combine to one layer!");
|
||||
skip_len = -1;
|
||||
assert(0);
|
||||
break;
|
||||
|
||||
|
||||
@@ -34,11 +34,6 @@
|
||||
#define GTEST_SAPP_ERR (-1)
|
||||
#define GTEST_SAPP_SUCC 0
|
||||
|
||||
static void sendto_test_result(int n)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static pcap_t *g_jmp_pcap_handle;
|
||||
|
||||
|
||||
@@ -1279,6 +1274,124 @@ TEST(jump_layer, eth_vlan_ip6_udp_gtpext_ip4_tcp)
|
||||
ASSERT_EQ(chk_res, 0);
|
||||
}
|
||||
|
||||
static void jump_layer_eth_vxlan_3vlan_ipv4_udp(u_char *result_val, const struct pcap_pkthdr *hdr, const u_char *data)
|
||||
{
|
||||
int ret;
|
||||
const void *eth_header = data;
|
||||
const void *outer_ipv4_header;
|
||||
const void *outer_udp_header;
|
||||
//const void *gtp_header;
|
||||
const void *inner_ipv4_header;
|
||||
|
||||
outer_ipv4_header = MESA_net_jump_to_layer(eth_header, ADDR_TYPE_MAC, ADDR_TYPE_IPV4);
|
||||
if(NULL == outer_ipv4_header){
|
||||
printf("\033[1;31;40m jump_layer_eth_vxlan_3vlan_ipv4_udp(): eth->ipv4 error!\033[0m\n");
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
ret = jump_check_ipv4_pkt((struct ip *)outer_ipv4_header, 209, IPPROTO_UDP, "10.10.0.8", "10.252.20.1");
|
||||
if(ret < 0){
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
outer_udp_header = MESA_net_jump_to_layer(eth_header, ADDR_TYPE_MAC, ADDR_TYPE_UDP);
|
||||
if(NULL == outer_udp_header){
|
||||
printf("\033[1;31;40m jump_layer_eth_vxlan_3vlan_ipv4_udp(): eth->vlan->ipv6->udp error!\033[0m\n");
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
ret = jump_check_udp_pkt((const struct udphdr *)outer_udp_header, 189, 61717, 4789);
|
||||
if(ret < 0){
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
const struct ethhdr *inner_mac_header = (struct ethhdr *)MESA_jump_layer_greedy(outer_ipv4_header, ADDR_TYPE_IPV4, ADDR_TYPE_MAC);
|
||||
if(NULL == inner_mac_header){
|
||||
printf("\033[1;31;jump_layer_eth_vxlan_3vlan_ipv4_udp(): eth->ipv6->udp->vxlan->mac error!\033[0m\n");
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
const unsigned char expect_src_mac[6] = {0x6c, 0x3b, 0x6b, 0xc0, 0x01, 0x1f};
|
||||
const unsigned char expect_dst_mac[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
|
||||
|
||||
if(memcmp(inner_mac_header->h_source, expect_src_mac, 6) != 0){
|
||||
printf("\033[1;31;jump_layer_eth_vxlan_3vlan_ipv4_udp(): eth->ipv6->udp->vxlan->src_mac error!\033[0m\n");
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
if(memcmp(inner_mac_header->h_dest, expect_dst_mac, 6) != 0){
|
||||
printf("\033[1;31;jump_layer_eth_vxlan_3vlan_ipv4_udp(): eth->ipv6->udp->vxlan->dst_mac error!\033[0m\n");
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
inner_ipv4_header = ( struct ip *)MESA_jump_layer_greedy(eth_header, ADDR_TYPE_MAC, ADDR_TYPE_IPV4);
|
||||
if(NULL == inner_ipv4_header){
|
||||
printf("\033[1;31;jump_layer_eth_vxlan_3vlan_ipv4_udp(): eth->ipv6->udp->gtp->ipv4 error!\033[0m\n");
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
ret = jump_check_ipv4_pkt((struct ip *)inner_ipv4_header, 147, IPPROTO_UDP, "0.0.0.0", "255.255.255.255");
|
||||
if(ret < 0){
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
const void *greedy_udp_hdr = MESA_jump_layer_greedy(eth_header, ADDR_TYPE_MAC, ADDR_TYPE_UDP);
|
||||
if(NULL == greedy_udp_hdr){
|
||||
printf("\033[1;31;40m jump_layer_eth_vxlan_3vlan_ipv4_udp(): greedy jump eth->vlan->ipv6->udp error!\033[0m\n");
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
ret = jump_check_udp_pkt((const struct udphdr *)greedy_udp_hdr, 127, 5678, 5678);
|
||||
if(ret < 0){
|
||||
*result_val = -1;
|
||||
pcap_breakloop(g_jmp_pcap_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("\033[32m jump_layer_eth_vxlan_3vlan_ipv4_udp() test succ\033[0m\n");
|
||||
|
||||
*result_val = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#define __jump_layer_eth_vxlan_3vlan_ipv4_udp 1
|
||||
TEST(jump_layer, eth_vxlan_3vlan_ipv4_udp)
|
||||
{
|
||||
int fun_ret;
|
||||
u_char chk_res = -1;
|
||||
|
||||
fun_ret = jmp_file_md5_checksum("./sample_pcap/vxlan_inner_3_vlan_udp.pcap", "3d9da66edfe7e8958f797ca57fff9ba5");
|
||||
ASSERT_EQ(fun_ret, 0);
|
||||
|
||||
fun_ret = jmp_pcap_init("./sample_pcap/vxlan_inner_3_vlan_udp.pcap", jump_layer_eth_vxlan_3vlan_ipv4_udp, (u_char *)&chk_res);
|
||||
ASSERT_EQ(fun_ret, 0);
|
||||
|
||||
ASSERT_EQ(chk_res, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
TODO:
|
||||
基础协议跳转测试用例;
|
||||
各种隧道嵌套协议跳转测试用例.
|
||||
*/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
||||
BIN
test/sample_pcap/vxlan_inner_3_vlan_udp.pcap
Normal file
BIN
test/sample_pcap/vxlan_inner_3_vlan_udp.pcap
Normal file
Binary file not shown.
Reference in New Issue
Block a user