5 Commits

Author SHA1 Message Date
yangwei
d7f3ac99be 🐎 ci(add aarch64 jobs): aarch64 + el9 2024-11-11 14:27:49 +08:00
yangwei
8135b42d14 WIP 2024-11-11 14:09:51 +08:00
yangwei
7ebb3fd553 🐎 ci(add aarch64 jobs): aarch64 + el9 2024-11-11 14:09:11 +08:00
yangwei
2d75ccb51a 🐎 ci(remove el7 jobs): remove centos7 jobs 2024-11-11 13:52:06 +08:00
lijia
10330f034e fix jump greedy for ipv6; fix compile warnning 2024-04-18 15:41:55 +08:00
6 changed files with 127 additions and 201 deletions

View File

@@ -1,97 +1,64 @@
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_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:master" BUILD_IMAGE_X86_64_ROCKY8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
BUILD_IMAGE_CENTOS8: "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: sapp-devel framework_env libpcap libpcap-devel INSTALL_DEPENDENCY_LIBRARY: libpcap libpcap-devel
INSTALL_PREFIX: "/opt/MESA/lib/" INSTALL_PREFIX: "/opt/MESA/lib/"
stages: stages:
- build - build
- test - test
google_test_for_centos7:
stage: test
image: $BUILD_IMAGE_CENTOS7
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_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
google_test_for_centos8:
stage: test
image: $BUILD_IMAGE_CENTOS8
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_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
.build_before_script: .build_before_script:
before_script: before_script:
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- cd $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 - chmod +x ./ci/travis.sh
- yum install -y elfutils-libelf-devel
.build_by_travis_for_centos7: ###############################################################################
# test on x86_64 Rocky8
###############################################################################
google_test_for_x86_64_rocky8:
stage: test
image: $BUILD_IMAGE_X86_64_ROCKY8
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_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:
- tsg-os-builder-el8
###############################################################################
# build on x86_64 Rocky8
###############################################################################
.build_by_travis_for_x86_64_rocky8:
stage: build stage: build
image: $BUILD_IMAGE_CENTOS7 image: $BUILD_IMAGE_X86_64_ROCKY8
extends: .build_before_script extends: .build_before_script
script: script:
- yum install -y libmnl-devel
- yum install -y libnfnetlink-devel
- ./ci/travis.sh - ./ci/travis.sh
tags: tags:
- share - tsg-os-builder-el8
.build_by_travis_for_centos8:
branch_build_debug_for_x86_64_rocky8:
stage: build stage: build
image: $BUILD_IMAGE_CENTOS8 extends: .build_by_travis_for_x86_64_rocky8
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: variables:
BUILD_TYPE: Debug BUILD_TYPE: Debug
artifacts: artifacts:
@@ -103,11 +70,11 @@ branch_build_debug_for_centos7:
- /^master.*$/i - /^master.*$/i
- tags - tags
branch_build_release_for_centos7: branch_build_release_for_x86_64_rocky8:
stage: build stage: build
variables: variables:
BUILD_TYPE: RelWithDebInfo BUILD_TYPE: RelWithDebInfo
extends: .build_by_travis_for_centos7 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
@@ -117,157 +84,7 @@ branch_build_release_for_centos7:
- /^master.*$/i - /^master.*$/i
- tags - tags
develop_build_debug_for_centos7: release_build_debug_for_x86_64_rocky8:
stage: build
extends: .build_by_travis_for_centos7
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_for_centos7:
stage: build
extends: .build_by_travis_for_centos7
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_for_centos7:
stage: build
variables:
BUILD_TYPE: Debug
PACKAGE: 1
UPLOAD_RPM: 1
PULP3_REPO_NAME: framework-stable-x86_64.el7
PULP3_DIST_NAME: framework-stable-x86_64.el7
extends: .build_by_travis_for_centos7
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_centos7:
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.el7
PULP3_DIST_NAME: framework-stable-x86_64.el7
extends: .build_by_travis_for_centos7
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
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 stage: build
variables: variables:
BUILD_TYPE: Debug BUILD_TYPE: Debug
@@ -275,7 +92,7 @@ release_build_debug_for_centos8:
UPLOAD_RPM: 1 UPLOAD_RPM: 1
PULP3_REPO_NAME: framework-stable-x86_64.el8 PULP3_REPO_NAME: framework-stable-x86_64.el8
PULP3_DIST_NAME: framework-stable-x86_64.el8 PULP3_DIST_NAME: framework-stable-x86_64.el8
extends: .build_by_travis_for_centos8 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:
@@ -285,17 +102,120 @@ release_build_debug_for_centos8:
only: only:
- tags - tags
release_build_release_for_centos8: 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.el8 PULP3_REPO_NAME: framework-stable-x86_64.el8
PULP3_DIST_NAME: framework-stable-x86_64.el8 PULP3_DIST_NAME: framework-stable-x86_64.el8
extends: .build_by_travis_for_centos8 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:

View File

@@ -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 ] && [ -f "/opt/rh/devtoolset-7/enable" ] ;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

View File

@@ -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)

View File

@@ -290,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));
@@ -1427,8 +1427,23 @@ 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;
goto done; 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;
}
} }
break; break;
@@ -1476,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);
@@ -1509,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;

View File

@@ -5,12 +5,13 @@ 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)

View File

@@ -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");