diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a223255 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.vscode/ +build/ +cmake-build-* diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..8774886 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,144 @@ +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/ + INSTALL_PREFIX: "/opt/MESA/" + +stages: +- build + +.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 + script: + - yum makecache fast + - ./ci/travis.sh + - cd build + tags: + - share + +branch_build_debug: + stage: build + extends: .build_by_travis + variables: + BUILD_TYPE: Debug + except: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + - tags + +branch_build_release: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + extends: .build_by_travis + except: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + - tags + +develop_build_debug: + stage: build + extends: .build_by_travis + variables: + BUILD_TYPE: Debug + PACKAGE: 1 + artifacts: + name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-debug" + paths: + - build/*.rpm + only: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + +develop_build_release: + stage: build + extends: .build_by_travis + variables: + BUILD_TYPE: RelWithDebInfo + PACKAGE: 1 + artifacts: + name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - /^dev*.*$/i + - /^rel*.*$/i + - /^master.*$/i + + +release_build_release: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + PACKAGE: 1 + UPLOAD: 1 + PULP3_REPO_NAME: platform-stable-x86_64.el7 + PULP3_DIST_NAME: platform-stable-x86_64.el7 + extends: .build_by_travis + artifacts: + name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - tags + except: + - /^v[0-9].*-testing$/i + +release_build_release_devel: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + ENABLE_DEVEL_SWITCH: "ON" + PACKAGE: 1 + UPLOAD: 1 + PULP3_REPO_NAME: platform-stable-x86_64.el7 + PULP3_DIST_NAME: platform-stable-x86_64.el7 + extends: .build_by_travis + artifacts: + name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - tags + except: + - /^v[0-9].*-testing$/i + +testing_build_release: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + PACKAGE: 1 + UPLOAD: 1 + PULP3_REPO_NAME: platform-testing-x86_64.el7 + PULP3_DIST_NAME: platform-testing-x86_64.el7 + extends: .build_by_travis + artifacts: + name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - /^v[0-9].*-testing$/i + +testing_build_release_devel: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + ENABLE_DEVEL_SWITCH: "ON" + PACKAGE: 1 + UPLOAD: 1 + PULP3_REPO_NAME: platform-testing-x86_64.el7 + PULP3_DIST_NAME: platform-testing-x86_64.el7 + extends: .build_by_travis + artifacts: + name: "tcpdump_mesa-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - /^v[0-9].*-testing$/i \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b36c30d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 2.8) + +set(project_name tcpdump_mesa) + +project(${project_name}) + +set(CMAKE_INSTALL_PREFIX /opt/MESA/) + +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) +include(Version) + +set(CMAKE_MACOSX_RPATH 0) + +execute_process(COMMAND ../src/configure WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) +execute_process(COMMAND make CFLAGS+=-DGIT_VERSION=\\"${GIT_VERSION}\\" WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + +execute_process(COMMAND cp tcpdump tcpdump_mesa WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + +# install the minidump tools to target binary dir +install(PROGRAMS ${CMAKE_BINARY_DIR}/tcpdump_mesa DESTINATION ./bin/ COMPONENT EXECUTABLE) + +include(Package) \ No newline at end of file diff --git a/autorelease.sh b/autorelease.sh new file mode 100644 index 0000000..0d85dd4 --- /dev/null +++ b/autorelease.sh @@ -0,0 +1,33 @@ +#!/bin/sh +if [ $# -lt 7 ] ; then + echo "USAGE: ./autorelease.sh [API_V4_URL] [PROJECT_URL] + [PROJECT_ID] [TOKEN] + [COMMIT_TAG] [JOB] [PROJECT_NAME] [COMMIT_REF_PROTECTED] [COMMIT_SHORT_SHA]" +exit 1; +fi + +CI_API_V4_URL=$1 +CI_PROJECT_URL=$2 +CI_PROJECT_ID=$3 +CI_TOKEN=$4 +CI_COMMIT_TAG=$5 +ARTIFACTS_JOB=$6 +CI_PROJECT_NAME=$7 +CI_COMMIT_SHORT_SHA=$8 + +res=`echo -e "curl --header \"PRIVATE-TOKEN: $CI_TOKEN\" $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/$CI_COMMIT_TAG -o /dev/null -s -w %{http_code}"| /bin/bash` + +if [[ $res == "200" ]]; then + eval $(echo -e "curl --request POST --header \"PRIVATE-TOKEN: $CI_TOKEN\" \ + --data name=\"$CI_PROJECT_NAME-$CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA-artifacts.zip\" \ + --data url=\"$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/download?job=$ARTIFACTS_JOB\"\ + $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/$CI_COMMIT_TAG/assets/links") +else + eval $(echo -e "curl --header 'Content-Type: application/json' --header \ + \"PRIVATE-TOKEN: $CI_TOKEN\" --data '{ \"name\": \"$CI_COMMIT_TAG\", \ + \"tag_name\": \"$CI_COMMIT_TAG\", \"description\": \"auto_release\",\ + \"assets\": { \"links\": [{ \"name\": \ + \"$CI_PROJECT_NAME-$CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA-artifacts.zip\", \"url\": \ + \"$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/download?job=$ARTIFACTS_JOB\"\ + }] } }' --request POST $CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/") +fi diff --git a/autorevision.sh b/autorevision.sh new file mode 100644 index 0000000..3baa179 --- /dev/null +++ b/autorevision.sh @@ -0,0 +1,1268 @@ +#!/bin/sh + +# Copyright (c) 2012 - 2016 dak180 and contributors. See +# https://opensource.org/licenses/mit-license.php or the included +# COPYING.md for licence terms. +# +# autorevision - extracts metadata about the head version from your +# repository. + +# Usage message. +arUsage() { + cat > "/dev/stderr" << EOF +usage: autorevision {-t output-type | -s symbol} [-o cache-file [-f] ] [-V] + Options include: + -t output-type = specify output type + -s symbol = specify symbol output + -o cache-file = specify cache file location + -f = force the use of cache data + -U = check for untracked files in svn + -V = emit version and exit + -? = help message + +The following are valid output types: + clojure = clojure file + c = C/C++ file + h = Header for use with c/c++ + hpp = Alternate C++ header strings with namespace + ini = INI file + java = Java file + javaprop = Java properties file + js = javascript file + json = JSON file + lua = Lua file + m4 = m4 file + matlab = matlab file + octave = octave file + php = PHP file + pl = Perl file + py = Python file + rpm = rpm file + scheme = scheme file + sh = Bash sytax + swift = Swift file + tex = (La)TeX file + xcode = Header useful for populating info.plist files + cmake = CMake file + + +The following are valid symbols: + VCS_TYPE + VCS_BASENAME + VCS_UUID + VCS_NUM + VCS_DATE + VCS_BRANCH + VCS_TAG + VCS_TICK + VCS_EXTRA + VCS_FULL_HASH + VCS_SHORT_HASH + VCS_WC_MODIFIED + VCS_ACTION_STAMP +EOF + exit 1 +} + +# Config +ARVERSION="&&ARVERSION&&" +TARGETFILE="/dev/stdout" +while getopts ":t:o:s:VfU" OPTION; do + case "${OPTION}" in + t) + AFILETYPE="${OPTARG}" + ;; + o) + CACHEFILE="${OPTARG}" + ;; + f) + CACHEFORCE="1" + ;; + s) + VAROUT="${OPTARG}" + ;; + U) + UNTRACKEDFILES="1" + ;; + V) + echo "autorevision ${ARVERSION}" + exit 0 + ;; + ?) + # If an unknown flag is used (or -?): + arUsage + ;; + esac +done + +if [ ! -z "${VAROUT}" ] && [ ! -z "${AFILETYPE}" ]; then + # If both -s and -t are specified: + echo "error: Improper argument combination." 1>&2 + exit 1 +elif [ -z "${VAROUT}" ] && [ -z "${AFILETYPE}" ]; then + # If neither -s or -t are specified: + arUsage +elif [ -z "${CACHEFILE}" ] && [ "${CACHEFORCE}" = "1" ]; then + # If -f is specified without -o: + arUsage +elif [ ! -f "${CACHEFILE}" ] && [ "${CACHEFORCE}" = "1" ]; then + # If we are forced to use the cache but it does not exist. + echo "error: Cache forced but no cache found." 1>&2 + exit 1 +fi + +# Make sure that the path we are given is one we can source +# (dash, we are looking at you). +if [ ! -z "${CACHEFILE}" ] && ! echo "${CACHEFILE}" | grep -q '^\.*/'; then + CACHEFILE="./${CACHEFILE}" +fi + +GENERATED_HEADER="Generated by autorevision - do not hand-hack!" + +# Functions to extract data from different repo types. +# For git repos +# shellcheck disable=SC2039,SC2164,SC2155 +gitRepo() { + local oldPath="${PWD}" + + cd "$(git rev-parse --show-toplevel)" + + VCS_TYPE="git" + + VCS_BASENAME="$(basename "${PWD}")" + + VCS_UUID="$(git rev-list --max-parents=0 --date-order --reverse HEAD 2>/dev/null | sed -n 1p)" + if [ -z "${VCS_UUID}" ]; then + VCS_UUID="$(git rev-list --topo-order HEAD | tail -n 1)" + fi + + # Is the working copy clean? + test -z "$(git status --untracked-files=normal --porcelain)" + VCS_WC_MODIFIED="${?}" + + # Enumeration of changesets + VCS_NUM="$(git rev-list --count HEAD 2>/dev/null)" + if [ -z "${VCS_NUM}" ]; then + echo "warning: Counting the number of revisions may be slower due to an outdated git version less than 1.7.2.3. If something breaks, please update it." 1>&2 + VCS_NUM="$(git rev-list HEAD | wc -l)" + fi + + # This may be a git-svn remote. If so, report the Subversion revision. + if [ -z "$(git config svn-remote.svn.url 2>/dev/null)" ]; then + # The full revision hash + VCS_FULL_HASH="$(git rev-parse HEAD)" + + # The short hash + VCS_SHORT_HASH="$(echo "${VCS_FULL_HASH}" | cut -b 1-7)" + else + # The git-svn revision number + VCS_FULL_HASH="$(git svn find-rev HEAD)" + VCS_SHORT_HASH="${VCS_FULL_HASH}" + fi + + # Current branch + VCS_BRANCH="$(git rev-parse --symbolic-full-name --verify "$(git name-rev --name-only --no-undefined HEAD 2>/dev/null)" 2>/dev/null | sed -e 's:refs/heads/::' | sed -e 's:refs/::')" + + # Cache the description + local DESCRIPTION="$(git describe --long --tags 2>/dev/null)" + + # Current or last tag ancestor (empty if no tags) + VCS_TAG="$(echo "${DESCRIPTION}" | sed -e "s:-g${VCS_SHORT_HASH}\$::" -e 's:-[0-9]*$::')" + + # Distance to last tag or an alias of VCS_NUM if there is no tag + if [ ! -z "${DESCRIPTION}" ]; then + VCS_TICK="$(echo "${DESCRIPTION}" | sed -e "s:${VCS_TAG}-::" -e "s:-g${VCS_SHORT_HASH}::")" + else + VCS_TICK="${VCS_NUM}" + fi + + # Date of the current commit + VCS_DATE="$(TZ=UTC git show -s --date=iso-strict-local --pretty=format:%ad | sed -e 's|+00:00|Z|')" + if [ -z "${VCS_DATE}" ]; then + echo "warning: Action stamps require git version 2.7+." 1>&2 + VCS_DATE="$(git log -1 --pretty=format:%ci | sed -e 's: :T:' -e 's: ::' -e 's|+00:00|Z|')" + local ASdis="1" + fi + + # Action Stamp + if [ -z "${ASdis}" ]; then + VCS_ACTION_STAMP="${VCS_DATE}!$(git show -s --pretty=format:%cE)" + else + VCS_ACTION_STAMP="" + fi + + cd "${oldPath}" +} + +# For hg repos +# shellcheck disable=SC2039,SC2164 +hgRepo() { + local oldPath="${PWD}" + + cd "$(hg root)" + + VCS_TYPE="hg" + + VCS_BASENAME="$(basename "${PWD}")" + + VCS_UUID="$(hg log -r "0" -l 1 --template '{node}\n')" + + # Is the working copy clean? + test -z "$(hg status -duram)" + VCS_WC_MODIFIED="${?}" + + # Enumeration of changesets + VCS_NUM="$(hg id -n | tr -d '+')" + + # The full revision hash + VCS_FULL_HASH="$(hg log -r "${VCS_NUM}" -l 1 --template '{node}\n')" + + # The short hash + VCS_SHORT_HASH="$(hg id -i | tr -d '+')" + + # Current bookmark (bookmarks are roughly equivalent to git's branches) + # or branch if no bookmark + VCS_BRANCH="$(hg id -B | cut -d ' ' -f 1)" + # Fall back to the branch if there are no bookmarks + if [ -z "${VCS_BRANCH}" ]; then + VCS_BRANCH="$(hg id -b)" + fi + + # Current or last tag ancestor (excluding auto tags, empty if no tags) + VCS_TAG="$(hg log -r "${VCS_NUM}" -l 1 --template '{latesttag}\n' 2>/dev/null | sed -e 's:qtip::' -e 's:tip::' -e 's:qbase::' -e 's:qparent::' -e "s:$(hg --config 'extensions.color=' --config 'extensions.mq=' --color never qtop 2>/dev/null)::" | cut -d ' ' -f 1)" + + # Distance to last tag or an alias of VCS_NUM if there is no tag + if [ ! -z "${VCS_TAG}" ]; then + VCS_TICK="$(hg log -r "${VCS_NUM}" -l 1 --template '{latesttagdistance}\n' 2>/dev/null)" + else + VCS_TICK="${VCS_NUM}" + fi + + # Date of the current commit + VCS_DATE="$(hg log -r "${VCS_NUM}" -l 1 --template '{date|isodatesec}\n' 2>/dev/null | sed -e 's: :T:' -e 's: ::' -e 's|+00:00|Z|')" + + # Action Stamp + VCS_ACTION_STAMP="$(TZ=UTC hg log -r "${VCS_NUM}" -l 1 --template '{date|localdate|rfc3339date}\n' 2>/dev/null | sed -e 's|+00:00|Z|')!$(hg log -r "${VCS_NUM}" -l 1 --template '{author|email}\n' 2>/dev/null)" + + cd "${oldPath}" +} + +# For bzr repos +# shellcheck disable=SC2039,SC2164 +bzrRepo() { + local oldPath="${PWD}" + + cd "$(bzr root)" + + VCS_TYPE="bzr" + + VCS_BASENAME="$(basename "${PWD}")" + + # Currently unimplemented because more investigation is needed. + VCS_UUID="" + + # Is the working copy clean? + bzr version-info --custom --template='{clean}\n' | grep -q '1' + VCS_WC_MODIFIED="${?}" + + # Enumeration of changesets + VCS_NUM="$(bzr revno)" + + # The full revision hash + VCS_FULL_HASH="$(bzr version-info --custom --template='{revision_id}\n')" + + # The short hash + VCS_SHORT_HASH="${VCS_NUM}" + + # Nick of the current branch + VCS_BRANCH="$(bzr nick)" + + # Current or last tag ancestor (excluding auto tags, empty if no tags) + VCS_TAG="$(bzr tags --sort=time | sed '/?$/d' | tail -n1 | cut -d ' ' -f1)" + + # Distance to last tag or an alias of VCS_NUM if there is no tag + if [ ! -z "${VCS_TAG}" ]; then + VCS_TICK="$(bzr log --line -r "tag:${VCS_TAG}.." | tail -n +2 | wc -l | sed -e 's:^ *::')" + else + VCS_TICK="${VCS_NUM}" + fi + + # Date of the current commit + VCS_DATE="$(bzr version-info --custom --template='{date}\n' | sed -e 's: :T:' -e 's: ::')" + + # Action Stamp + # Currently unimplemented because more investigation is needed. + VCS_ACTION_STAMP="" + + cd "${oldPath}" +} + +# For svn repos +# shellcheck disable=SC2039,SC2164,SC2155 +svnRepo() { + local oldPath="${PWD}" + + VCS_TYPE="svn" + + case "${PWD}" in + /*trunk*|/*branches*|/*tags*) + local fn="${PWD}" + while [ "$(basename "${fn}")" != 'trunk' ] && [ "$(basename "${fn}")" != 'branches' ] && [ "$(basename "${fn}")" != 'tags' ] && [ "$(basename "${fn}")" != '/' ]; do + local fn="$(dirname "${fn}")" + done + local fn="$(dirname "${fn}")" + if [ "${fn}" = '/' ]; then + VCS_BASENAME="$(basename "${PWD}")" + else + VCS_BASENAME="$(basename "${fn}")" + fi + ;; + *) VCS_BASENAME="$(basename "${PWD}")" ;; + esac + + VCS_UUID="$(svn info --xml | sed -n -e 's:::' -e 's:::p')" + + # Cache svnversion output + local SVNVERSION="$(svnversion)" + + # Is the working copy clean? + echo "${SVNVERSION}" | grep -q "M" + case "${?}" in + 0) + VCS_WC_MODIFIED="1" + ;; + 1) + if [ ! -z "${UNTRACKEDFILES}" ]; then + # `svnversion` does not detect untracked files and `svn status` is really slow, so only run it if we really have to. + if [ -z "$(svn status)" ]; then + VCS_WC_MODIFIED="0" + else + VCS_WC_MODIFIED="1" + fi + else + VCS_WC_MODIFIED="0" + fi + ;; + esac + + # Enumeration of changesets + VCS_NUM="$(echo "${SVNVERSION}" | cut -d : -f 1 | sed -e 's:M::' -e 's:S::' -e 's:P::')" + + # The full revision hash + VCS_FULL_HASH="${SVNVERSION}" + + # The short hash + VCS_SHORT_HASH="${VCS_NUM}" + + # Current branch + case "${PWD}" in + /*trunk*|/*branches*|/*tags*) + local lastbase="" + local fn="${PWD}" + while : + do + base="$(basename "${fn}")" + if [ "${base}" = 'trunk' ]; then + VCS_BRANCH='trunk' + break + elif [ "${base}" = 'branches' ] || [ "${base}" = 'tags' ]; then + VCS_BRANCH="${lastbase}" + break + elif [ "${base}" = '/' ]; then + VCS_BRANCH="" + break + fi + local lastbase="${base}" + local fn="$(dirname "${fn}")" + done + ;; + *) VCS_BRANCH="" ;; + esac + + # Current or last tag ancestor (empty if no tags). But "current + # tag" can't be extracted reliably because Subversion doesn't + # have tags the way other VCSes do. + VCS_TAG="" + VCS_TICK="" + + # Date of the current commit + VCS_DATE="$(svn info --xml | sed -n -e 's:::' -e 's:::p')" + + # Action Stamp + VCS_ACTION_STAMP="${VCS_DATE}!$(svn log --xml -l 1 -r "${VCS_SHORT_HASH}" | sed -n -e 's:::' -e 's:::p')" + + cd "${oldPath}" +} + + +# Functions to output data in different formats. +# For bash output +shOutput() { + cat > "${TARGETFILE}" << EOF +# ${GENERATED_HEADER} + +VCS_TYPE="${VCS_TYPE}" +VCS_BASENAME="${VCS_BASENAME}" +VCS_UUID="${VCS_UUID}" +VCS_NUM="${VCS_NUM}" +VCS_DATE="${VCS_DATE}" +VCS_BRANCH="${VCS_BRANCH}" +VCS_TAG="${VCS_TAG}" +VCS_TICK="${VCS_TICK}" +VCS_EXTRA="${VCS_EXTRA}" + +VCS_ACTION_STAMP="${VCS_ACTION_STAMP}" +VCS_FULL_HASH="${VCS_FULL_HASH}" +VCS_SHORT_HASH="${VCS_SHORT_HASH}" + +VCS_WC_MODIFIED="${VCS_WC_MODIFIED}" + +# end +EOF +} + +# For source C output +cOutput() { + cat > "${TARGETFILE}" << EOF +/* ${GENERATED_HEADER} */ + +const char *VCS_TYPE = "${VCS_TYPE}"; +const char *VCS_BASENAME = "${VCS_BASENAME}"; +const char *VCS_UUID = "${VCS_UUID}"; +const int VCS_NUM = ${VCS_NUM}; +const char *VCS_DATE = "${VCS_DATE}"; +const char *VCS_BRANCH = "${VCS_BRANCH}"; +const char *VCS_TAG = "${VCS_TAG}"; +const int VCS_TICK = ${VCS_TICK}; +const char *VCS_EXTRA = "${VCS_EXTRA}"; + +const char *VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}"; +const char *VCS_FULL_HASH = "${VCS_FULL_HASH}"; +const char *VCS_SHORT_HASH = "${VCS_SHORT_HASH}"; + +const int VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}; + +/* end */ +EOF +} + +# For header output +hOutput() { + cat > "${TARGETFILE}" << EOF +/* ${GENERATED_HEADER} */ +#ifndef AUTOREVISION_H +#define AUTOREVISION_H + +#define VCS_TYPE "${VCS_TYPE}" +#define VCS_BASENAME "${VCS_BASENAME}" +#define VCS_UUID "${VCS_UUID}" +#define VCS_NUM ${VCS_NUM} +#define VCS_DATE "${VCS_DATE}" +#define VCS_BRANCH "${VCS_BRANCH}" +#define VCS_TAG "${VCS_TAG}" +#define VCS_TICK ${VCS_TICK} +#define VCS_EXTRA "${VCS_EXTRA}" + +#define VCS_ACTION_STAMP "${VCS_ACTION_STAMP}" +#define VCS_FULL_HASH "${VCS_FULL_HASH}" +#define VCS_SHORT_HASH "${VCS_SHORT_HASH}" + +#define VCS_WC_MODIFIED ${VCS_WC_MODIFIED} + +#endif + +/* end */ +EOF +} + +# A header output for use with xcode to populate info.plist strings +xcodeOutput() { + cat > "${TARGETFILE}" << EOF +/* ${GENERATED_HEADER} */ +#ifndef AUTOREVISION_H +#define AUTOREVISION_H + +#define VCS_TYPE ${VCS_TYPE} +#define VCS_BASENAME ${VCS_BASENAME} +#define VCS_UUID ${VCS_UUID} +#define VCS_NUM ${VCS_NUM} +#define VCS_DATE ${VCS_DATE} +#define VCS_BRANCH ${VCS_BRANCH} +#define VCS_TAG ${VCS_TAG} +#define VCS_TICK ${VCS_TICK} +#define VCS_EXTRA ${VCS_EXTRA} + +#define VCS_ACTION_STAMP ${VCS_ACTION_STAMP} +#define VCS_FULL_HASH ${VCS_FULL_HASH} +#define VCS_SHORT_HASH ${VCS_SHORT_HASH} + +#define VCS_WC_MODIFIED ${VCS_WC_MODIFIED} + +#endif + +/* end */ +EOF +} + +# For Swift output +swiftOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="false" ;; + 1) VCS_WC_MODIFIED="true" ;; + esac + # For values that may not exist depending on the type of repo we + # have read from, set them to `nil` when they are empty. + if [ -z "${VCS_UUID}" ]; then + VCS_UUID="nil" + else + VCS_UUID="\"${VCS_UUID}\"" + fi + if [ -z "${VCS_TAG}" ]; then + VCS_TAG="nil" + else + VCS_TAG="\"${VCS_TAG}\"" + fi + : "${VCS_TICK:="nil"}" + if [ -z "${VCS_EXTRA}" ]; then + VCS_EXTRA="nil" + else + VCS_EXTRA="\"${VCS_EXTRA}\"" + fi + if [ -z "${VCS_ACTION_STAMP}" ]; then + VCS_ACTION_STAMP="nil" + else + VCS_ACTION_STAMP="\"${VCS_ACTION_STAMP}\"" + fi + cat > "${TARGETFILE}" << EOF +/* ${GENERATED_HEADER} */ + +let VCS_TYPE = "${VCS_TYPE}" +let VCS_BASENAME = "${VCS_BASENAME}" +let VCS_UUID: String? = ${VCS_UUID} +let VCS_NUM: Int = ${VCS_NUM} +let VCS_DATE = "${VCS_DATE}" +let VCS_BRANCH: String = "${VCS_BRANCH}" +let VCS_TAG: String? = ${VCS_TAG} +let VCS_TICK: Int? = ${VCS_TICK} +let VCS_EXTRA: String? = ${VCS_EXTRA} + +let VCS_ACTION_STAMP: String? = ${VCS_ACTION_STAMP} +let VCS_FULL_HASH: String = "${VCS_FULL_HASH}" +let VCS_SHORT_HASH: String = "${VCS_SHORT_HASH}" + +let VCS_WC_MODIFIED: Bool = ${VCS_WC_MODIFIED} + +/* end */ +EOF +} + +# For Python output +pyOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="False" ;; + 1) VCS_WC_MODIFIED="True" ;; + esac + cat > "${TARGETFILE}" << EOF +# ${GENERATED_HEADER} + +VCS_TYPE = "${VCS_TYPE}" +VCS_BASENAME = "${VCS_BASENAME}" +VCS_UUID = "${VCS_UUID}" +VCS_NUM = ${VCS_NUM} +VCS_DATE = "${VCS_DATE}" +VCS_BRANCH = "${VCS_BRANCH}" +VCS_TAG = "${VCS_TAG}" +VCS_TICK = ${VCS_TICK} +VCS_EXTRA = "${VCS_EXTRA}" + +VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}" +VCS_FULL_HASH = "${VCS_FULL_HASH}" +VCS_SHORT_HASH = "${VCS_SHORT_HASH}" + +VCS_WC_MODIFIED = ${VCS_WC_MODIFIED} + +# end +EOF +} + +# For Perl output +plOutput() { + cat << EOF +# ${GENERATED_HEADER} + +\$VCS_TYPE = '${VCS_TYPE}'; +\$VCS_BASENAME = '${VCS_BASENAME}'; +\$VCS_UUID = '${VCS_UUID}'; +\$VCS_NUM = ${VCS_NUM}; +\$VCS_DATE = '${VCS_DATE}'; +\$VCS_BRANCH = '${VCS_BRANCH}'; +\$VCS_TAG = '${VCS_TAG}'; +\$VCS_TICK = ${VCS_TICK}; +\$VCS_EXTRA = '${VCS_EXTRA}'; + +\$VCS_ACTION_STAMP = '${VCS_ACTION_STAMP}'; +\$VCS_FULL_HASH = '${VCS_FULL_HASH}'; +\$VCS_SHORT_HASH = '${VCS_SHORT_HASH}'; + +\$VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}; + +# end +1; +EOF +} + +# For lua output +luaOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="false" ;; + 1) VCS_WC_MODIFIED="true" ;; + esac + cat > "${TARGETFILE}" << EOF +-- ${GENERATED_HEADER} + +VCS_TYPE = "${VCS_TYPE}" +VCS_BASENAME = "${VCS_BASENAME}" +VCS_UUID = "${VCS_UUID}" +VCS_NUM = ${VCS_NUM} +VCS_DATE = "${VCS_DATE}" +VCS_BRANCH = "${VCS_BRANCH}" +VCS_TAG = "${VCS_TAG}" +VCS_TICK = ${VCS_TICK} +VCS_EXTRA = "${VCS_EXTRA}" + +VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}" +VCS_FULL_HASH = "${VCS_FULL_HASH}" +VCS_SHORT_HASH = "${VCS_SHORT_HASH}" + +VCS_WC_MODIFIED = ${VCS_WC_MODIFIED} + +-- end +EOF +} + +# For php output +phpOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="false" ;; + 1) VCS_WC_MODIFIED="true" ;; + esac + cat > "${TARGETFILE}" << EOF + "${VCS_TYPE}", + "VCS_BASENAME" => "${VCS_BASENAME}", + "VCS_UUID" => "${VCS_UUID}", + "VCS_NUM" => ${VCS_NUM}, + "VCS_DATE" => "${VCS_DATE}", + "VCS_BRANCH" => "${VCS_BRANCH}", + "VCS_TAG" => "${VCS_TAG}", + "VCS_TICK" => ${VCS_TICK}, + "VCS_EXTRA" => "${VCS_EXTRA}", + "VCS_ACTION_STAMP" => "${VCS_ACTION_STAMP}", + "VCS_FULL_HASH" => "${VCS_FULL_HASH}", + "VCS_SHORT_HASH" => "${VCS_SHORT_HASH}", + "VCS_WC_MODIFIED" => ${VCS_WC_MODIFIED} +); + +# end +?> +EOF +} + +# For ini output +iniOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="false" ;; + 1) VCS_WC_MODIFIED="true" ;; + esac + cat > "${TARGETFILE}" << EOF +; ${GENERATED_HEADER} +[VCS] +VCS_TYPE = "${VCS_TYPE}" +VCS_BASENAME = "${VCS_BASENAME}" +VCS_UUID = "${VCS_UUID}" +VCS_NUM = ${VCS_NUM} +VCS_DATE = "${VCS_DATE}" +VCS_BRANCH = "${VCS_BRANCH}" +VCS_TAG = "${VCS_TAG}" +VCS_TICK = ${VCS_TICK} +VCS_EXTRA = "${VCS_EXTRA}" +VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}" +VCS_FULL_HASH = "${VCS_FULL_HASH}" +VCS_SHORT_HASH = "${VCS_SHORT_HASH}" +VCS_WC_MODIFIED = ${VCS_WC_MODIFIED} +; end +EOF +} + +# For javascript output +jsOutput() { + case "${VCS_WC_MODIFIED}" in + 1) VCS_WC_MODIFIED="true" ;; + 0) VCS_WC_MODIFIED="false" ;; + esac + cat > "${TARGETFILE}" << EOF +/** ${GENERATED_HEADER} */ + +var autorevision = { + VCS_TYPE: "${VCS_TYPE}", + VCS_BASENAME: "${VCS_BASENAME}", + VCS_UUID: "${VCS_UUID}", + VCS_NUM: ${VCS_NUM}, + VCS_DATE: "${VCS_DATE}", + VCS_BRANCH: "${VCS_BRANCH}", + VCS_TAG: "${VCS_TAG}", + VCS_TICK: ${VCS_TICK}, + VCS_EXTRA: "${VCS_EXTRA}", + + VCS_ACTION_STAMP: "${VCS_ACTION_STAMP}", + VCS_FULL_HASH: "${VCS_FULL_HASH}", + VCS_SHORT_HASH: "${VCS_SHORT_HASH}", + + VCS_WC_MODIFIED: ${VCS_WC_MODIFIED} +}; + +/** Node.js compatibility */ +if (typeof module !== 'undefined') { + module.exports = autorevision; +} + +/** end */ +EOF +} + +# For JSON output +jsonOutput() { + case "${VCS_WC_MODIFIED}" in + 1) VCS_WC_MODIFIED="true" ;; + 0) VCS_WC_MODIFIED="false" ;; + esac + cat > "${TARGETFILE}" << EOF +{ + "_comment": "${GENERATED_HEADER}", + "VCS_TYPE": "${VCS_TYPE}", + "VCS_BASENAME": "${VCS_BASENAME}", + "VCS_UUID": "${VCS_UUID}", + "VCS_NUM": ${VCS_NUM}, + "VCS_DATE": "${VCS_DATE}", + "VCS_BRANCH":"${VCS_BRANCH}", + "VCS_TAG": "${VCS_TAG}", + "VCS_TICK": ${VCS_TICK}, + "VCS_EXTRA": "${VCS_EXTRA}", + + "VCS_ACTION_STAMP": "${VCS_ACTION_STAMP}", + "VCS_FULL_HASH": "${VCS_FULL_HASH}", + "VCS_SHORT_HASH": "${VCS_SHORT_HASH}", + + "VCS_WC_MODIFIED": ${VCS_WC_MODIFIED} +} +EOF +} + +# For Java output +javaOutput() { + case "${VCS_WC_MODIFIED}" in + 1) VCS_WC_MODIFIED="true" ;; + 0) VCS_WC_MODIFIED="false" ;; + esac + cat > "${TARGETFILE}" << EOF +/* ${GENERATED_HEADER} */ + +public class autorevision { + public static final String VCS_TYPE = "${VCS_TYPE}"; + public static final String VCS_BASENAME = "${VCS_BASENAME}"; + public static final String VCS_UUID = "${VCS_UUID}"; + public static final long VCS_NUM = ${VCS_NUM}; + public static final String VCS_DATE = "${VCS_DATE}"; + public static final String VCS_BRANCH = "${VCS_BRANCH}"; + public static final String VCS_TAG = "${VCS_TAG}"; + public static final long VCS_TICK = ${VCS_TICK}; + public static final String VCS_EXTRA = "${VCS_EXTRA}"; + + public static final String VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}"; + public static final String VCS_FULL_HASH = "${VCS_FULL_HASH}"; + public static final String VCS_SHORT_HASH = "${VCS_SHORT_HASH}"; + + public static final boolean VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}; +} +EOF +} + +# For Java properties output +javapropOutput() { + case "${VCS_WC_MODIFIED}" in + 1) VCS_WC_MODIFIED="true" ;; + 0) VCS_WC_MODIFIED="false" ;; + esac + cat > "${TARGETFILE}" << EOF +# ${GENERATED_HEADER} + +VCS_TYPE=${VCS_TYPE} +VCS_BASENAME=${VCS_BASENAME} +VCS_UUID=${VCS_UUID} +VCS_NUM=${VCS_NUM} +VCS_DATE=${VCS_DATE} +VCS_BRANCH=${VCS_BRANCH} +VCS_TAG=${VCS_TAG} +VCS_TICK=${VCS_TICK} +VCS_EXTRA=${VCS_EXTRA} + +VCS_ACTION_STAMP=${VCS_ACTION_STAMP} +VCS_FULL_HASH=${VCS_FULL_HASH} +VCS_SHORT_HASH=${VCS_SHORT_HASH} + +VCS_WC_MODIFIED=${VCS_WC_MODIFIED} +EOF +} + +# For m4 output +m4Output() { + cat > "${TARGETFILE}" << EOF +dnl ${GENERATED_HEADER} +define(\`VCS_TYPE', \`${VCS_TYPE}')dnl +define(\`VCS_BASENAME', \`${VCS_BASENAME}')dnl +define(\`VCS_UUID', \`${VCS_UUID}')dnl +define(\`VCS_NUM', \`${VCS_NUM}')dnl +define(\`VCS_DATE', \`${VCS_DATE}')dnl +define(\`VCS_BRANCH', \`${VCS_BRANCH}')dnl +define(\`VCS_TAG', \`${VCS_TAG}')dnl +define(\`VCS_TICK', \`${VCS_TICK}')dnl +define(\`VCS_EXTRA', \`${VCS_EXTRA}')dnl +define(\`VCS_ACTIONSTAMP', \`${VCS_ACTION_STAMP}')dnl +define(\`VCS_FULLHASH', \`${VCS_FULL_HASH}')dnl +define(\`VCS_SHORTHASH', \`${VCS_SHORT_HASH}')dnl +define(\`VCS_WC_MODIFIED', \`${VCS_WC_MODIFIED}')dnl +EOF +} + +# For (La)TeX output +texOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="false" ;; + 1) VCS_WC_MODIFIED="true" ;; + esac + cat > "${TARGETFILE}" << EOF +% ${GENERATED_HEADER} +\def \vcsType {${VCS_TYPE}} +\def \vcsBasename {${VCS_BASENAME}} +\def \vcsUUID {${VCS_UUID}} +\def \vcsNum {${VCS_NUM}} +\def \vcsDate {${VCS_DATE}} +\def \vcsBranch {${VCS_BRANCH}} +\def \vcsTag {${VCS_TAG}} +\def \vcsTick {${VCS_TICK}} +\def \vcsExtra {${VCS_EXTRA}} +\def \vcsACTIONSTAMP {${VCS_ACTION_STAMP}} +\def \vcsFullHash {${VCS_FULL_HASH}} +\def \vcsShortHash {${VCS_SHORT_HASH}} +\def \vcsWCModified {${VCS_WC_MODIFIED}} +\endinput +EOF +} + +# For scheme output +schemeOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="#f" ;; + 1) VCS_WC_MODIFIED="#t" ;; + esac + cat > "${TARGETFILE}" << EOF +;; ${GENERATED_HEADER} +(define VCS_TYPE "${VCS_TYPE}") +(define VCS_BASENAME "${VCS_BASENAME}") +(define VCS_UUID "${VCS_UUID}") +(define VCS_NUM ${VCS_NUM}) +(define VCS_DATE "${VCS_DATE}") +(define VCS_BRANCH "${VCS_BRANCH}") +(define VCS_TAG "${VCS_TAG}") +(define VCS_TICK ${VCS_TICK}) +(define VCS_EXTRA "${VCS_EXTRA}") + +(define VCS_ACTION_STAMP "${VCS_ACTION_STAMP}") +(define VCS_FULL_HASH "${VCS_FULL_HASH}") +(define VCS_SHORT_HASH "${VCS_SHORT_HASH}") + +(define VCS_WC_MODIFIED ${VCS_WC_MODIFIED}) +;; end +EOF +} + +# For clojure output +clojureOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="false" ;; + 1) VCS_WC_MODIFIED="true" ;; + esac + cat > "${TARGETFILE}" << EOF +;; ${GENERATED_HEADER} +(def VCS_TYPE "${VCS_TYPE}") +(def VCS_BASENAME "${VCS_BASENAME}") +(def VCS_UUID "${VCS_UUID}") +(def VCS_NUM ${VCS_NUM}) +(def VCS_DATE "${VCS_DATE}") +(def VCS_BRANCH "${VCS_BRANCH}") +(def VCS_TAG "${VCS_TAG}") +(def VCS_TICK ${VCS_TICK}) +(def VCS_EXTRA "${VCS_EXTRA}") + +(def VCS_ACTION_STAMP "${VCS_ACTION_STAMP}") +(def VCS_FULL_HASH "${VCS_FULL_HASH}") +(def VCS_SHORT_HASH "${VCS_SHORT_HASH}") + +(def VCS_WC_MODIFIED ${VCS_WC_MODIFIED}) +;; end +EOF +} + +# For rpm spec file output +rpmOutput() { + cat > "${TARGETFILE}" << EOF +# ${GENERATED_HEADER} +$([ "${VCS_TYPE}" ] && echo "%define vcs_type ${VCS_TYPE}") +$([ "${VCS_BASENAME}" ] && echo "%define vcs_basename ${VCS_BASENAME}") +$([ "${VCS_UUID}" ] && echo "%define vcs_uuid ${VCS_UUID}") +$([ "${VCS_NUM}" ] && echo "%define vcs_num ${VCS_NUM}") +$([ "${VCS_DATE}" ] && echo "%define vcs_date ${VCS_DATE}") +$([ "${VCS_BRANCH}" ] && echo "%define vcs_branch ${VCS_BRANCH}") +$([ "${VCS_TAG}" ] && echo "%define vcs_tag ${VCS_TAG}") +$([ "${VCS_TICK}" ] && echo "%define vcs_tick ${VCS_TICK}") +$([ "${VCS_EXTRA}" ] && echo "%define vcs_extra ${VCS_EXTRA}") + +$([ "${VCS_ACTION_STAMP}" ] && echo "%define vcs_action_stamp ${VCS_ACTION_STAMP}") +$([ "${VCS_FULL_HASH}" ] && echo "%define vcs_full_hash ${VCS_FULL_HASH}") +$([ "${VCS_SHORT_HASH}" ] && echo "%define vcs_short_hash ${VCS_SHORT_HASH}") + +$([ "${VCS_WC_MODIFIED}" ] && echo "%define vcs_wc_modified ${VCS_WC_MODIFIED}") +# end +EOF +} + +# shellcheck disable=SC2155,SC2039 +hppOutput() { + local NAMESPACE="$(echo "${VCS_BASENAME}" | sed -e 's:_::g' | tr '[:lower:]' '[:upper:]')" + cat > "${TARGETFILE}" << EOF +/* ${GENERATED_HEADER} */ + +#ifndef ${NAMESPACE}_AUTOREVISION_H +#define ${NAMESPACE}_AUTOREVISION_H + +#include + +namespace $(echo "${NAMESPACE}" | tr '[:upper:]' '[:lower:]') +{ + const std::string VCS_TYPE = "${VCS_TYPE}"; + const std::string VCS_BASENAME = "${VCS_BASENAME}"; + const std::string VCS_UUID = "${VCS_UUID}"; + const int VCS_NUM = ${VCS_NUM}; + const std::string VCS_DATE = "${VCS_DATE}"; + const std::string VCS_BRANCH = "${VCS_BRANCH}"; + const std::string VCS_TAG = "${VCS_TAG}"; + const int VCS_TICK = ${VCS_TICK}; + const std::string VCS_EXTRA = "${VCS_EXTRA}"; + + const std::string VCS_ACTION_STAMP = "${VCS_ACTION_STAMP}"; + const std::string VCS_FULL_HASH = "${VCS_FULL_HASH}"; + const std::string VCS_SHORT_HASH = "${VCS_SHORT_HASH}"; + + const int VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}; +} + +#endif + +/* end */ +EOF +} + +matlabOutput() { + case "${VCS_WC_MODIFIED}" in + 0) VCS_WC_MODIFIED="FALSE" ;; + 1) VCS_WC_MODIFIED="TRUE" ;; + esac + cat > "${TARGETFILE}" << EOF +% ${GENERATED_HEADER} + +VCS_TYPE = '${VCS_TYPE}'; +VCS_BASENAME = '${VCS_BASENAME}'; +VCS_UUID = '${VCS_UUID}'; +VCS_NUM = ${VCS_NUM}; +VCS_DATE = '${VCS_DATE}'; +VCS_BRANCH = '${VCS_BRANCH}'; +VCS_TAG = '${VCS_TAG}'; +VCS_TICK = ${VCS_TICK}; +VCS_EXTRA = '${VCS_EXTRA}'; + +VCS_ACTION_STAMP = '${VCS_ACTION_STAMP}'; +VCS_FULL_HASH = '${VCS_FULL_HASH}'; +VCS_SHORT_HASH = '${VCS_SHORT_HASH}'; + +VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}; + +% end +EOF +} + +octaveOutput() { + cat > "${TARGETFILE}" << EOF +% ${GENERATED_HEADER} + +VCS_TYPE = '${VCS_TYPE}'; +VCS_BASENAME = '${VCS_BASENAME}'; +VCS_UUID = '${VCS_UUID}'; +VCS_NUM = ${VCS_NUM}; +VCS_DATE = '${VCS_DATE}'; +VCS_BRANCH = '${VCS_BRANCH}'; +VCS_TAG = '${VCS_TAG}'; +VCS_TICK = ${VCS_TICK}; +VCS_EXTRA = '${VCS_EXTRA}'; + +VCS_ACTION_STAMP = '${VCS_ACTION_STAMP}'; +VCS_FULL_HASH = '${VCS_FULL_HASH}'; +VCS_SHORT_HASH = '${VCS_SHORT_HASH}'; + +VCS_WC_MODIFIED = ${VCS_WC_MODIFIED}; + +% end +EOF +} + +cmakeOutput() { + cat > "${TARGETFILE}" << EOF +# ${GENERATED_HEADER} + +set(VCS_TYPE ${VCS_TYPE}) +set(VCS_BASENAME ${VCS_BASENAME}) +set(VCS_UUID ${VCS_UUID}) +set(VCS_NUM ${VCS_NUM}) +set(VCS_DATE ${VCS_DATE}) +set(VCS_BRANCH ${VCS_BRANCH}) +set(VCS_TAG ${VCS_TAG}) +set(VCS_TICK ${VCS_TICK}) +set(VCS_EXTRA ${VCS_EXTRA}) + +set(VCS_ACTION_STAMP ${VCS_ACTION_STAMP}) +set(VCS_FULL_HASH ${VCS_FULL_HASH}) +set(VCS_SHORT_HASH ${VCS_SHORT_HASH}) + +set(VCS_WC_MODIFIED ${VCS_WC_MODIFIED}) + +# end +EOF +} + + +# Helper functions +# Count path segments +# shellcheck disable=SC2039 +pathSegment() { + local pathz="${1}" + local depth="0" + + if [ ! -z "${pathz}" ]; then + # Continue until we are at / or there are no path separators left. + while [ ! "${pathz}" = "/" ] && [ ! "${pathz}" = "$(echo "${pathz}" | sed -e 's:/::')" ]; do + pathz="$(dirname "${pathz}")" + depth="$((depth+1))" + done + fi + echo "${depth}" +} + +# Largest of four numbers +# shellcheck disable=SC2039 +multiCompare() { + local larger="${1}" + local numA="${2}" + local numB="${3}" + local numC="${4}" + + [ "${numA}" -gt "${larger}" ] && larger="${numA}" + [ "${numB}" -gt "${larger}" ] && larger="${numB}" + [ "${numC}" -gt "${larger}" ] && larger="${numC}" + echo "${larger}" +} + +# Test for repositories +# shellcheck disable=SC2155,SC2039 +repoTest() { + REPONUM="0" + if [ ! -z "$(git rev-parse HEAD 2>/dev/null)" ]; then + local gitPath="$(git rev-parse --show-toplevel)" + local gitDepth="$(pathSegment "${gitPath}")" + REPONUM="$((REPONUM+1))" + else + local gitDepth="0" + fi + if [ ! -z "$(hg root 2>/dev/null)" ]; then + local hgPath="$(hg root 2>/dev/null)" + local hgDepth="$(pathSegment "${hgPath}")" + REPONUM="$((REPONUM+1))" + else + local hgDepth="0" + fi + if [ ! -z "$(bzr root 2>/dev/null)" ]; then + local bzrPath="$(bzr root 2>/dev/null)" + local bzrDepth="$(pathSegment "${bzrPath}")" + REPONUM="$((REPONUM+1))" + else + local bzrDepth="0" + fi + if [ ! -z "$(svn info 2>/dev/null)" ]; then + local stringz="" + local stringx="" + local svnPath="$(svn info --xml | sed -n -e "s:${stringz}::" -e "s:${stringx}::p")" + # An old enough svn will not be able give us a path; default + # to 1 for that case. + if [ -z "${svnPath}" ]; then + local svnDepth="1" + else + local svnDepth="$(pathSegment "${svnPath}")" + fi + REPONUM="$((REPONUM+1))" + else + local svnDepth="0" + fi + + # Do not do more work then we have to. + if [ "${REPONUM}" = "0" ]; then + return + fi + + # Figure out which repo is the deepest and use it. + local wonRepo="$(multiCompare "${gitDepth}" "${hgDepth}" "${bzrDepth}" "${svnDepth}")" + if [ "${wonRepo}" = "${gitDepth}" ]; then + gitRepo + elif [ "${wonRepo}" = "${hgDepth}" ]; then + hgRepo + elif [ "${wonRepo}" = "${bzrDepth}" ]; then + bzrRepo + elif [ "${wonRepo}" = "${svnDepth}" ]; then + svnRepo + fi +} + + + +# Detect which repos we are in and gather data. +# shellcheck source=/dev/null +if [ -f "${CACHEFILE}" ] && [ "${CACHEFORCE}" = "1" ]; then + # When requested only read from the cache to populate our symbols. + . "${CACHEFILE}" +else + # If a value is not set through the environment set VCS_EXTRA to nothing. + : "${VCS_EXTRA:=""}" + repoTest + + if [ -f "${CACHEFILE}" ] && [ "${REPONUM}" = "0" ]; then + # We are not in a repo; try to use a previously generated cache to populate our symbols. + . "${CACHEFILE}" + # Do not overwrite the cache if we know we are not going to write anything new. + CACHEFORCE="1" + elif [ "${REPONUM}" = "0" ]; then + echo "error: No repo or cache detected." 1>&2 + exit 1 + fi +fi + + +# -s output is handled here. +if [ ! -z "${VAROUT}" ]; then + if [ "${VAROUT}" = "VCS_TYPE" ]; then + echo "${VCS_TYPE}" + elif [ "${VAROUT}" = "VCS_BASENAME" ]; then + echo "${VCS_BASENAME}" + elif [ "${VAROUT}" = "VCS_NUM" ]; then + echo "${VCS_NUM}" + elif [ "${VAROUT}" = "VCS_DATE" ]; then + echo "${VCS_DATE}" + elif [ "${VAROUT}" = "VCS_BRANCH" ]; then + echo "${VCS_BRANCH}" + elif [ "${VAROUT}" = "VCS_TAG" ]; then + echo "${VCS_TAG}" + elif [ "${VAROUT}" = "VCS_TICK" ]; then + echo "${VCS_TICK}" + elif [ "${VAROUT}" = "VCS_FULL_HASH" ]; then + echo "${VCS_FULL_HASH}" + elif [ "${VAROUT}" = "VCS_SHORT_HASH" ]; then + echo "${VCS_SHORT_HASH}" + elif [ "${VAROUT}" = "VCS_WC_MODIFIED" ]; then + echo "${VCS_WC_MODIFIED}" + elif [ "${VAROUT}" = "VCS_ACTION_STAMP" ]; then + echo "${VCS_ACTION_STAMP}" + else + echo "error: Not a valid output symbol." 1>&2 + exit 1 + fi +fi + + +# Detect requested output type and use it. +if [ ! -z "${AFILETYPE}" ]; then + if [ "${AFILETYPE}" = "c" ]; then + cOutput + elif [ "${AFILETYPE}" = "h" ]; then + hOutput + elif [ "${AFILETYPE}" = "xcode" ]; then + xcodeOutput + elif [ "${AFILETYPE}" = "swift" ]; then + swiftOutput + elif [ "${AFILETYPE}" = "sh" ]; then + shOutput + elif [ "${AFILETYPE}" = "py" ] || [ "${AFILETYPE}" = "python" ]; then + pyOutput + elif [ "${AFILETYPE}" = "pl" ] || [ "${AFILETYPE}" = "perl" ]; then + plOutput + elif [ "${AFILETYPE}" = "lua" ]; then + luaOutput + elif [ "${AFILETYPE}" = "php" ]; then + phpOutput + elif [ "${AFILETYPE}" = "ini" ]; then + iniOutput + elif [ "${AFILETYPE}" = "js" ]; then + jsOutput + elif [ "${AFILETYPE}" = "json" ]; then + jsonOutput + elif [ "${AFILETYPE}" = "java" ]; then + javaOutput + elif [ "${AFILETYPE}" = "javaprop" ]; then + javapropOutput + elif [ "${AFILETYPE}" = "tex" ]; then + texOutput + elif [ "${AFILETYPE}" = "m4" ]; then + m4Output + elif [ "${AFILETYPE}" = "scheme" ]; then + schemeOutput + elif [ "${AFILETYPE}" = "clojure" ]; then + clojureOutput + elif [ "${AFILETYPE}" = "rpm" ]; then + rpmOutput + elif [ "${AFILETYPE}" = "hpp" ]; then + hppOutput + elif [ "${AFILETYPE}" = "matlab" ]; then + matlabOutput + elif [ "${AFILETYPE}" = "octave" ]; then + octaveOutput + elif [ "${AFILETYPE}" = "cmake" ]; then + cmakeOutput + else + echo "error: Not a valid output type." 1>&2 + exit 1 + fi +fi + + +# If requested, make a cache file. +if [ ! -z "${CACHEFILE}" ] && [ ! "${CACHEFORCE}" = "1" ]; then + TARGETFILE="${CACHEFILE}.tmp" + shOutput + + # Check to see if there have been any actual changes. + if [ ! -f "${CACHEFILE}" ]; then + mv -f "${CACHEFILE}.tmp" "${CACHEFILE}" + elif cmp -s "${CACHEFILE}.tmp" "${CACHEFILE}"; then + rm -f "${CACHEFILE}.tmp" + else + mv -f "${CACHEFILE}.tmp" "${CACHEFILE}" + fi +fi diff --git a/ci/get-nprocessors.sh b/ci/get-nprocessors.sh new file mode 100644 index 0000000..43635e7 --- /dev/null +++ b/ci/get-nprocessors.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# Copyright 2017 Google Inc. +# All Rights Reserved. +# +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# This file is typically sourced by another script. +# if possible, ask for the precise number of processors, +# otherwise take 2 processors as reasonable default; see +# https://docs.travis-ci.com/user/speeding-up-the-build/#Makefile-optimization +if [ -x /usr/bin/getconf ]; then + NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN) +else + NPROCESSORS=2 +fi + +# as of 2017-09-04 Travis CI reports 32 processors, but GCC build +# crashes if parallelized too much (maybe memory consumption problem), +# so limit to 4 processors for the time being. +if [ $NPROCESSORS -gt 4 ] ; then + echo "$0:Note: Limiting processors to use by make from $NPROCESSORS to 4." + NPROCESSORS=4 +fi diff --git a/ci/perpare_pulp3_netrc.sh b/ci/perpare_pulp3_netrc.sh new file mode 100644 index 0000000..8414bbb --- /dev/null +++ b/ci/perpare_pulp3_netrc.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env sh +set -evx +echo "machine ${PULP3_SERVER_URL}\nlogin ${PULP3_SERVER_LOGIN}\npassword ${PULP3_SERVER_PASSWORD}\n" > ~/.netrc diff --git a/ci/travis.sh b/ci/travis.sh new file mode 100644 index 0000000..4f07bdf --- /dev/null +++ b/ci/travis.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env sh +set -evx + +chmod +x ci/get-nprocessors.sh +. ci/get-nprocessors.sh + +# if possible, ask for the precise number of processors, +# otherwise take 2 processors as reasonable default; see +# https://docs.travis-ci.com/user/speeding-up-the-build/#Makefile-optimization +if [ -x /usr/bin/getconf ]; then + NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN) +else + NPROCESSORS=2 +fi + +# as of 2017-09-04 Travis CI reports 32 processors, but GCC build +# crashes if parallelized too much (maybe memory consumption problem), +# so limit to 4 processors for the time being. +if [ $NPROCESSORS -gt 4 ] ; then + echo "$0:Note: Limiting processors to use by make from $NPROCESSORS to 4." + NPROCESSORS=4 +fi + +# Tell make to use the processors. No preceding '-' required. +MAKEFLAGS="j${NPROCESSORS}" +export MAKEFLAGS + +env | sort + +# Set default values to OFF for these variables if not specified. +: "${NO_EXCEPTION:=OFF}" +: "${NO_RTTI:=OFF}" +: "${COMPILER_IS_GNUCXX:=OFF}" + +# Install dependency from YUM +if [ -n "${INSTALL_DEPENDENCY_LIBRARY}" ]; then + yum install -y $INSTALL_DEPENDENCY_LIBRARY + source /etc/profile.d/framework.sh +fi +mkdir build || true +cd build + +cmake3 -DCMAKE_CXX_FLAGS=$CXX_FLAGS \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ + -DENABLE_DEVEL=$ENABLE_DEVEL_SWITCH \ + -DVERSION_DAILY_BUILD=$TESTING_VERSION_BUILD \ + .. + +make + +if [ -n "${PACKAGE}" ]; then + make package +fi + +if [ -n "${UPLOAD}" ]; then + cp ~/rpm_upload_tools.py ./ + python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm +fi + +#if [ -n "${UPLOAD_SYMBOL_FILES}" ]; then +# rpm -i tfe*debuginfo*.rpm +# cp /usr/lib/debug/opt/tsg/tfe/bin/tfe.debug /tmp/tfe.debuginfo.${CI_COMMIT_SHORT_SHA} +# sentry-cli upload-dif -t elf /tmp/tfe.debuginfo.${CI_COMMIT_SHORT_SHA} +#fi diff --git a/cmake/FindSYSTEMD.cmake b/cmake/FindSYSTEMD.cmake new file mode 100644 index 0000000..c7decde --- /dev/null +++ b/cmake/FindSYSTEMD.cmake @@ -0,0 +1,39 @@ +# - Find SystemdDaemon +# Find the systemd daemon library +# +# This module defines the following variables: +# SYSTEMD_FOUND - True if library and include directory are found +# If set to TRUE, the following are also defined: +# SYSTEMD_INCLUDE_DIRS - The directory where to find the header file +# SYSTEMD_LIBRARIES - Where to find the library file +# +# For conveniance, these variables are also set. They have the same values +# than the variables above. The user can thus choose his/her prefered way +# to write them. +# SYSTEMD_LIBRARY +# SYSTEMD_INCLUDE_DIR +# +# This file is in the public domain + +include(FindPkgConfig) +pkg_check_modules(SYSTEMD libsystemd) + +if(NOT SYSTEMD_FOUND) + find_path(SYSTEMD_INCLUDE_DIRS NAMES systemd/sd-daemon.h + DOC "The Systemd include directory") + + find_library(SYSTEMD_LIBRARIES NAMES systemd + DOC "The Systemd library") + + # Use some standard module to handle the QUIETLY and REQUIRED arguments, and + # set SYSTEMD_FOUND to TRUE if these two variables are set. + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(SYSTEMD REQUIRED_VARS SYSTEMD_LIBRARIES SYSTEMD_INCLUDE_DIRS) + + if(SYSTEMD_FOUND) + set(SYSTEMD_LIBRARY ${SYSTEMD_LIBRARIES}) + set(SYSTEMD_INCLUDE_DIR ${SYSTEMD_INCLUDE_DIRS}) + endif() +endif() + +mark_as_advanced(SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES) \ No newline at end of file diff --git a/cmake/Package.cmake b/cmake/Package.cmake new file mode 100644 index 0000000..33da0c5 --- /dev/null +++ b/cmake/Package.cmake @@ -0,0 +1,64 @@ +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(MY_RPM_NAME_PREFIX "${project_name}-debug") +else() + set(MY_RPM_NAME_PREFIX "${project_name}") +endif() + +message(STATUS "Package: ${MY_RPM_NAME_PREFIX}") + +set(CPACK_PACKAGE_VECDOR "MESA") +set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") +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) + +execute_process(COMMAND sh changelog.sh ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake) +SET(CPACK_RPM_CHANGELOG_FILE ${CMAKE_BINARY_DIR}/changelog.txt) + +# RPM Build +set(CPACK_GENERATOR "RPM") +set(CPACK_RPM_PACKAGE_VENDOR "MESA") +set(CPACK_RPM_PACKAGE_AUTOREQPROV "yes") +set(CPACK_RPM_PACKAGE_RELEASE_LIBRARY "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) +set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) +set(CPACK_COMPONENT_HEADER_DISPLAY_NAME "develop") + +set(CPACK_COMPONENT_EXECUTABLE_REQUIRED TRUE) +set(CPACK_RPM_EXECUTABLE_PACKAGE_NAME ${MY_RPM_NAME_PREFIX}) +set(CPACK_RPM_EXECUTABLE_FILE_NAME "${CPACK_RPM_EXECUTABLE_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm") +set(CPACK_RPM_EXECUTABLE_DEBUGINFO_FILE_NAME "${CPACK_RPM_EXECUTABLE_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm") + +set(CPACK_COMPONENT_EXECUTABLE_GROUP "executable") +set(CPACK_COMPONENT_LIBRARY_GROUP "executable") +set(CPACK_COMPONENT_PROFILE_GROUP "executable") + +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_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARY_PACKAGE_NAME}) +set(CPACK_RPM_HEADER_PACKAGE_CONFLICTS ${CPACK_RPM_HEADER_PACKAGE_NAME}) + +set(CPACK_COMPONENTS_ALL LIBRARY HEADER EXECUTABLE PROFILE) + +set(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR}") + +set(CPACK_RPM_PACKAGE_AUTOREQPROV "no") +set(CPACK_RPM_PACKAGE_AUTOREQ "no") + +# Must uninstall the debug package before install release package +set(CPACK_RPM_PACKAGE_CONFLICTS ${MY_RPM_NAME_PREFIX}) + +# set(CPACK_STRIP_FILES TRUE) +include(CPack) + + diff --git a/cmake/Version.cmake b/cmake/Version.cmake new file mode 100644 index 0000000..3722d0e --- /dev/null +++ b/cmake/Version.cmake @@ -0,0 +1,49 @@ + +# Using autorevision.sh to generate version information + +set(__SOURCE_AUTORESIVISION ${CMAKE_SOURCE_DIR}/autorevision.sh) +set(__AUTORESIVISION ${CMAKE_BINARY_DIR}/autorevision.sh) +set(__VERSION_CACHE ${CMAKE_BINARY_DIR}/version.txt) +set(__VERSION_CONFIG ${CMAKE_BINARY_DIR}/version.cmake) + +file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR} + FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE) + +# execute autorevision.sh to generate version information +execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE} + OUTPUT_FILE ${__VERSION_CONFIG} ERROR_QUIET) +include(${__VERSION_CONFIG}) + +# extract major, minor, patch version from git tag +string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VCS_TAG}") +string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VCS_TAG}") +string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VCS_TAG}") + +if(NOT VERSION_MAJOR) + set(VERSION_MAJOR 1) +endif() + +if(NOT VERSION_MINOR) + set(VERSION_MINOR 0) +endif() + +if(NOT VERSION_PATCH) + set(VERSION_PATCH 0) +endif() + +set(VERSION "${VERSION_MAJOR}_${VERSION_MINOR}_${VERSION_PATCH}") +set(VERSION_BUILD "${VCS_SHORT_HASH}") + +# print information +message(STATUS "Version: ${VERSION}-${VERSION_BUILD}") + +option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to TRUE or FALSE" TRUE) + +if(DEFINE_GIT_VERSION) + set(GIT_VERSION + "${VERSION}-${CMAKE_BUILD_TYPE}-${VERSION_BUILD}-${VCS_BRANCH}-${VCS_TAG}-${VCS_DATE}") + string(REGEX REPLACE "[-:+/\\.]" "_" GIT_VERSION ${GIT_VERSION}) + + add_definitions(-DGIT_VERSION=${GIT_VERSION}) +endif() diff --git a/cmake/changelog.sh b/cmake/changelog.sh new file mode 100644 index 0000000..67f995f --- /dev/null +++ b/cmake/changelog.sh @@ -0,0 +1,4 @@ +#!/bin/sh +work_path=$1 +branch=`git status | grep branch | awk '{print $NF}'` +git log --branches=$branch --no-merges --date=local --show-signature --pretty="* %ad %an %ae %nhash: %H%ncommit:%n%B" | awk -F"-" '{print "- "$0}' | sed 's/- \*/\*/g' | sed 's/- $//g' | sed 's/-/ -/g' | sed 's/[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//g' > $work_path/changelog.txt diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..817b05f --- /dev/null +++ b/readme.md @@ -0,0 +1,59 @@ + + + **TCPDUMP_MESA** + +fork from tcpdump for MESA sapp platform + +------ + +``` +tcpdump version 4.8.1 +libpcap version 1.8.1 +OpenSSL 1.0.2k-fips 26 Jan 2017 +Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] + [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] + [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ] + [ -Q in|out|inout ] + [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ] + [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ] + [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ] + [ -Z user ] [ expression ] +----------------------------------------------------------------------------------------------. + The follow args is customized for tcpdump_mesa: + [ -a ] enable perceptive mode, can detect loss packet number. + [ -g greedy-seek ] enable greedy seek to most inner IP layer, for tunnel, embed protocol. + [ -k thread-id ] to assign sapp recv thread id, support multi-range, for example: 1,3,5,7. + [ -o offset ] to assign offset from MAC, for skip some low layer data, for example: vxlan=50, mac_in_mac=14. + [ -P port ] to assign sapp recv command port. + [ --vlan-as-mac-in-mac ] force VLAN to be analysed as MAC-IN-MAC format. +``` + + + +------ + + **2016-11-29 lijia** + +类似FTP方式, TCP连接传输命令, UDP连接传输实际捕包. + +1. 随机打开本端UDP未用端口, 默认12345, 如被占用, 顺序后延 + +2. 与sapp建立TCP连接, 发送本端UDP监听端口 + +3. 给sapp发送捕包控制命令, 传输BPF-filter过滤字符串 + +4. 从UDP端口读取sapp捕获的数据包 + +5. 调用tcpdump原版流程, 解析打印或写文件 + +------ + + **2017-08-08 lijia** + +1. 增加指定线程号捕包功能 + +------ + +**2020-09-28** yangwei + +1. 优化greedy_seek模式行为,构造DLT_RAW类型的cbpf用于从IP头部开始匹配过滤规则 \ No newline at end of file diff --git a/readme.txt b/readme.txt deleted file mode 100644 index 120e131..0000000 --- a/readme.txt +++ /dev/null @@ -1,14 +0,0 @@ -/* --------------------------------------------------------------- - 2016-11-29 lijia, - 类似FTP方式, TCP连接传输命令, UDP连接传输实际捕包. - 1-随机打开本端UDP未用端口, 默认12345, 如被占用, 顺序后延; - 2-与sapp建立TCP连接, 发送本端UDP监听端口; - 3-给sapp发送捕包控制命令, 传输BPF-filter过滤字符串, - - 4-从UDP端口读取sapp捕获的数据包; - 5-调用tcpdump原版流程, 解析打印或写文件。 --------------------------------------------------------------- - 2017-08-08 lijia, - 1-增加指定线程号捕包功能. -*/ \ No newline at end of file diff --git a/CHANGES b/src/CHANGES similarity index 100% rename from CHANGES rename to src/CHANGES diff --git a/CREDITS b/src/CREDITS similarity index 100% rename from CREDITS rename to src/CREDITS diff --git a/INSTALL.txt b/src/INSTALL.txt similarity index 100% rename from INSTALL.txt rename to src/INSTALL.txt diff --git a/LICENSE b/src/LICENSE similarity index 100% rename from LICENSE rename to src/LICENSE diff --git a/Makefile-devel-adds b/src/Makefile-devel-adds similarity index 100% rename from Makefile-devel-adds rename to src/Makefile-devel-adds diff --git a/Makefile.in b/src/Makefile.in similarity index 100% rename from Makefile.in rename to src/Makefile.in diff --git a/README.md b/src/README.md similarity index 100% rename from README.md rename to src/README.md diff --git a/Readme.Win32 b/src/Readme.Win32 similarity index 100% rename from Readme.Win32 rename to src/Readme.Win32 diff --git a/VERSION b/src/VERSION similarity index 100% rename from VERSION rename to src/VERSION diff --git a/aclocal.m4 b/src/aclocal.m4 similarity index 100% rename from aclocal.m4 rename to src/aclocal.m4 diff --git a/addrtoname.c b/src/addrtoname.c similarity index 100% rename from addrtoname.c rename to src/addrtoname.c diff --git a/addrtoname.h b/src/addrtoname.h similarity index 100% rename from addrtoname.h rename to src/addrtoname.h diff --git a/addrtostr.c b/src/addrtostr.c similarity index 100% rename from addrtostr.c rename to src/addrtostr.c diff --git a/addrtostr.h b/src/addrtostr.h similarity index 100% rename from addrtostr.h rename to src/addrtostr.h diff --git a/af.c b/src/af.c similarity index 100% rename from af.c rename to src/af.c diff --git a/af.h b/src/af.h similarity index 100% rename from af.h rename to src/af.h diff --git a/ah.h b/src/ah.h similarity index 100% rename from ah.h rename to src/ah.h diff --git a/appletalk.h b/src/appletalk.h similarity index 100% rename from appletalk.h rename to src/appletalk.h diff --git a/ascii_strcasecmp.c b/src/ascii_strcasecmp.c similarity index 100% rename from ascii_strcasecmp.c rename to src/ascii_strcasecmp.c diff --git a/ascii_strcasecmp.h b/src/ascii_strcasecmp.h similarity index 100% rename from ascii_strcasecmp.h rename to src/ascii_strcasecmp.h diff --git a/atime.awk b/src/atime.awk similarity index 100% rename from atime.awk rename to src/atime.awk diff --git a/atm.h b/src/atm.h similarity index 100% rename from atm.h rename to src/atm.h diff --git a/bpf_dump.c b/src/bpf_dump.c similarity index 100% rename from bpf_dump.c rename to src/bpf_dump.c diff --git a/chdlc.h b/src/chdlc.h similarity index 100% rename from chdlc.h rename to src/chdlc.h diff --git a/checksum.c b/src/checksum.c similarity index 100% rename from checksum.c rename to src/checksum.c diff --git a/config.guess b/src/config.guess similarity index 100% rename from config.guess rename to src/config.guess diff --git a/config.h.in b/src/config.h.in similarity index 100% rename from config.h.in rename to src/config.h.in diff --git a/config.sub b/src/config.sub similarity index 100% rename from config.sub rename to src/config.sub diff --git a/configure b/src/configure old mode 100644 new mode 100755 similarity index 100% rename from configure rename to src/configure diff --git a/configure.in b/src/configure.in similarity index 100% rename from configure.in rename to src/configure.in diff --git a/cpack.c b/src/cpack.c similarity index 100% rename from cpack.c rename to src/cpack.c diff --git a/cpack.h b/src/cpack.h similarity index 100% rename from cpack.h rename to src/cpack.h diff --git a/ether.h b/src/ether.h similarity index 100% rename from ether.h rename to src/ether.h diff --git a/ethertype.h b/src/ethertype.h similarity index 100% rename from ethertype.h rename to src/ethertype.h diff --git a/extract.h b/src/extract.h similarity index 100% rename from extract.h rename to src/extract.h diff --git a/getopt_long.h b/src/getopt_long.h similarity index 100% rename from getopt_long.h rename to src/getopt_long.h diff --git a/gmpls.c b/src/gmpls.c similarity index 100% rename from gmpls.c rename to src/gmpls.c diff --git a/gmpls.h b/src/gmpls.h similarity index 100% rename from gmpls.h rename to src/gmpls.h diff --git a/gmt2local.c b/src/gmt2local.c similarity index 100% rename from gmt2local.c rename to src/gmt2local.c diff --git a/gmt2local.h b/src/gmt2local.h similarity index 100% rename from gmt2local.h rename to src/gmt2local.h diff --git a/in_cksum.c b/src/in_cksum.c similarity index 100% rename from in_cksum.c rename to src/in_cksum.c diff --git a/install-sh b/src/install-sh similarity index 100% rename from install-sh rename to src/install-sh diff --git a/interface.h b/src/interface.h similarity index 100% rename from interface.h rename to src/interface.h diff --git a/ip.h b/src/ip.h similarity index 100% rename from ip.h rename to src/ip.h diff --git a/ip6.h b/src/ip6.h similarity index 100% rename from ip6.h rename to src/ip6.h diff --git a/ipproto.c b/src/ipproto.c similarity index 100% rename from ipproto.c rename to src/ipproto.c diff --git a/ipproto.h b/src/ipproto.h similarity index 100% rename from ipproto.h rename to src/ipproto.h diff --git a/l2vpn.c b/src/l2vpn.c similarity index 100% rename from l2vpn.c rename to src/l2vpn.c diff --git a/l2vpn.h b/src/l2vpn.h similarity index 100% rename from l2vpn.h rename to src/l2vpn.h diff --git a/lbl/os-osf4.h b/src/lbl/os-osf4.h similarity index 100% rename from lbl/os-osf4.h rename to src/lbl/os-osf4.h diff --git a/lbl/os-solaris2.h b/src/lbl/os-solaris2.h similarity index 100% rename from lbl/os-solaris2.h rename to src/lbl/os-solaris2.h diff --git a/lbl/os-sunos4.h b/src/lbl/os-sunos4.h similarity index 100% rename from lbl/os-sunos4.h rename to src/lbl/os-sunos4.h diff --git a/lbl/os-ultrix4.h b/src/lbl/os-ultrix4.h similarity index 100% rename from lbl/os-ultrix4.h rename to src/lbl/os-ultrix4.h diff --git a/llc.h b/src/llc.h similarity index 100% rename from llc.h rename to src/llc.h diff --git a/machdep.c b/src/machdep.c similarity index 100% rename from machdep.c rename to src/machdep.c diff --git a/machdep.h b/src/machdep.h similarity index 100% rename from machdep.h rename to src/machdep.h diff --git a/makemib b/src/makemib similarity index 100% rename from makemib rename to src/makemib diff --git a/mesa_net.h b/src/mesa_net.h similarity index 100% rename from mesa_net.h rename to src/mesa_net.h diff --git a/mesa_pkt_dump.h b/src/mesa_pkt_dump.h similarity index 100% rename from mesa_pkt_dump.h rename to src/mesa_pkt_dump.h diff --git a/mib.h b/src/mib.h similarity index 100% rename from mib.h rename to src/mib.h diff --git a/missing/datalinks.c b/src/missing/datalinks.c similarity index 100% rename from missing/datalinks.c rename to src/missing/datalinks.c diff --git a/missing/dlnames.c b/src/missing/dlnames.c similarity index 100% rename from missing/dlnames.c rename to src/missing/dlnames.c diff --git a/missing/getopt_long.c b/src/missing/getopt_long.c similarity index 100% rename from missing/getopt_long.c rename to src/missing/getopt_long.c diff --git a/missing/snprintf.c b/src/missing/snprintf.c similarity index 100% rename from missing/snprintf.c rename to src/missing/snprintf.c diff --git a/missing/strdup.c b/src/missing/strdup.c similarity index 100% rename from missing/strdup.c rename to src/missing/strdup.c diff --git a/missing/strlcat.c b/src/missing/strlcat.c similarity index 100% rename from missing/strlcat.c rename to src/missing/strlcat.c diff --git a/missing/strlcpy.c b/src/missing/strlcpy.c similarity index 100% rename from missing/strlcpy.c rename to src/missing/strlcpy.c diff --git a/missing/strsep.c b/src/missing/strsep.c similarity index 100% rename from missing/strsep.c rename to src/missing/strsep.c diff --git a/mkdep b/src/mkdep similarity index 100% rename from mkdep rename to src/mkdep diff --git a/mpls.h b/src/mpls.h similarity index 100% rename from mpls.h rename to src/mpls.h diff --git a/nameser.h b/src/nameser.h similarity index 100% rename from nameser.h rename to src/nameser.h diff --git a/net_common.c b/src/net_common.c similarity index 100% rename from net_common.c rename to src/net_common.c diff --git a/netdissect-stdinc.h b/src/netdissect-stdinc.h similarity index 100% rename from netdissect-stdinc.h rename to src/netdissect-stdinc.h diff --git a/netdissect.h b/src/netdissect.h similarity index 100% rename from netdissect.h rename to src/netdissect.h diff --git a/nfs.h b/src/nfs.h similarity index 100% rename from nfs.h rename to src/nfs.h diff --git a/nfsfh.h b/src/nfsfh.h similarity index 100% rename from nfsfh.h rename to src/nfsfh.h diff --git a/nlpid.c b/src/nlpid.c similarity index 100% rename from nlpid.c rename to src/nlpid.c diff --git a/nlpid.h b/src/nlpid.h similarity index 100% rename from nlpid.h rename to src/nlpid.h diff --git a/openflow.h b/src/openflow.h similarity index 100% rename from openflow.h rename to src/openflow.h diff --git a/ospf.h b/src/ospf.h similarity index 100% rename from ospf.h rename to src/ospf.h diff --git a/oui.c b/src/oui.c similarity index 100% rename from oui.c rename to src/oui.c diff --git a/oui.h b/src/oui.h similarity index 100% rename from oui.h rename to src/oui.h diff --git a/packetdat.awk b/src/packetdat.awk similarity index 100% rename from packetdat.awk rename to src/packetdat.awk diff --git a/parsenfsfh.c b/src/parsenfsfh.c similarity index 100% rename from parsenfsfh.c rename to src/parsenfsfh.c diff --git a/pcap-missing.h b/src/pcap-missing.h similarity index 100% rename from pcap-missing.h rename to src/pcap-missing.h diff --git a/pcap_dump_ftell.c b/src/pcap_dump_ftell.c similarity index 100% rename from pcap_dump_ftell.c rename to src/pcap_dump_ftell.c diff --git a/ppp.h b/src/ppp.h similarity index 100% rename from ppp.h rename to src/ppp.h diff --git a/print-802_11.c b/src/print-802_11.c similarity index 100% rename from print-802_11.c rename to src/print-802_11.c diff --git a/print-802_15_4.c b/src/print-802_15_4.c similarity index 100% rename from print-802_15_4.c rename to src/print-802_15_4.c diff --git a/print-ah.c b/src/print-ah.c similarity index 100% rename from print-ah.c rename to src/print-ah.c diff --git a/print-ahcp.c b/src/print-ahcp.c similarity index 100% rename from print-ahcp.c rename to src/print-ahcp.c diff --git a/print-aodv.c b/src/print-aodv.c similarity index 100% rename from print-aodv.c rename to src/print-aodv.c diff --git a/print-aoe.c b/src/print-aoe.c similarity index 100% rename from print-aoe.c rename to src/print-aoe.c diff --git a/print-ap1394.c b/src/print-ap1394.c similarity index 100% rename from print-ap1394.c rename to src/print-ap1394.c diff --git a/print-arcnet.c b/src/print-arcnet.c similarity index 100% rename from print-arcnet.c rename to src/print-arcnet.c diff --git a/print-arp.c b/src/print-arp.c similarity index 100% rename from print-arp.c rename to src/print-arp.c diff --git a/print-ascii.c b/src/print-ascii.c similarity index 100% rename from print-ascii.c rename to src/print-ascii.c diff --git a/print-atalk.c b/src/print-atalk.c similarity index 100% rename from print-atalk.c rename to src/print-atalk.c diff --git a/print-atm.c b/src/print-atm.c similarity index 100% rename from print-atm.c rename to src/print-atm.c diff --git a/print-babel.c b/src/print-babel.c similarity index 100% rename from print-babel.c rename to src/print-babel.c diff --git a/print-beep.c b/src/print-beep.c similarity index 100% rename from print-beep.c rename to src/print-beep.c diff --git a/print-bfd.c b/src/print-bfd.c similarity index 100% rename from print-bfd.c rename to src/print-bfd.c diff --git a/print-bgp.c b/src/print-bgp.c similarity index 100% rename from print-bgp.c rename to src/print-bgp.c diff --git a/print-bootp.c b/src/print-bootp.c similarity index 100% rename from print-bootp.c rename to src/print-bootp.c diff --git a/print-bt.c b/src/print-bt.c similarity index 100% rename from print-bt.c rename to src/print-bt.c diff --git a/print-calm-fast.c b/src/print-calm-fast.c similarity index 100% rename from print-calm-fast.c rename to src/print-calm-fast.c diff --git a/print-carp.c b/src/print-carp.c similarity index 100% rename from print-carp.c rename to src/print-carp.c diff --git a/print-cdp.c b/src/print-cdp.c similarity index 100% rename from print-cdp.c rename to src/print-cdp.c diff --git a/print-cfm.c b/src/print-cfm.c similarity index 100% rename from print-cfm.c rename to src/print-cfm.c diff --git a/print-chdlc.c b/src/print-chdlc.c similarity index 100% rename from print-chdlc.c rename to src/print-chdlc.c diff --git a/print-cip.c b/src/print-cip.c similarity index 100% rename from print-cip.c rename to src/print-cip.c diff --git a/print-cnfp.c b/src/print-cnfp.c similarity index 100% rename from print-cnfp.c rename to src/print-cnfp.c diff --git a/print-dccp.c b/src/print-dccp.c similarity index 100% rename from print-dccp.c rename to src/print-dccp.c diff --git a/print-decnet.c b/src/print-decnet.c similarity index 100% rename from print-decnet.c rename to src/print-decnet.c diff --git a/print-dhcp6.c b/src/print-dhcp6.c similarity index 100% rename from print-dhcp6.c rename to src/print-dhcp6.c diff --git a/print-domain.c b/src/print-domain.c similarity index 100% rename from print-domain.c rename to src/print-domain.c diff --git a/print-dtp.c b/src/print-dtp.c similarity index 100% rename from print-dtp.c rename to src/print-dtp.c diff --git a/print-dvmrp.c b/src/print-dvmrp.c similarity index 100% rename from print-dvmrp.c rename to src/print-dvmrp.c diff --git a/print-eap.c b/src/print-eap.c similarity index 100% rename from print-eap.c rename to src/print-eap.c diff --git a/print-egp.c b/src/print-egp.c similarity index 100% rename from print-egp.c rename to src/print-egp.c diff --git a/print-eigrp.c b/src/print-eigrp.c similarity index 100% rename from print-eigrp.c rename to src/print-eigrp.c diff --git a/print-enc.c b/src/print-enc.c similarity index 100% rename from print-enc.c rename to src/print-enc.c diff --git a/print-esp.c b/src/print-esp.c similarity index 100% rename from print-esp.c rename to src/print-esp.c diff --git a/print-ether.c b/src/print-ether.c similarity index 100% rename from print-ether.c rename to src/print-ether.c diff --git a/print-fddi.c b/src/print-fddi.c similarity index 100% rename from print-fddi.c rename to src/print-fddi.c diff --git a/print-forces.c b/src/print-forces.c similarity index 100% rename from print-forces.c rename to src/print-forces.c diff --git a/print-fr.c b/src/print-fr.c similarity index 100% rename from print-fr.c rename to src/print-fr.c diff --git a/print-frag6.c b/src/print-frag6.c similarity index 100% rename from print-frag6.c rename to src/print-frag6.c diff --git a/print-ftp.c b/src/print-ftp.c similarity index 100% rename from print-ftp.c rename to src/print-ftp.c diff --git a/print-geneve.c b/src/print-geneve.c similarity index 100% rename from print-geneve.c rename to src/print-geneve.c diff --git a/print-geonet.c b/src/print-geonet.c similarity index 100% rename from print-geonet.c rename to src/print-geonet.c diff --git a/print-gre.c b/src/print-gre.c similarity index 100% rename from print-gre.c rename to src/print-gre.c diff --git a/print-hncp.c b/src/print-hncp.c similarity index 100% rename from print-hncp.c rename to src/print-hncp.c diff --git a/print-hsrp.c b/src/print-hsrp.c similarity index 100% rename from print-hsrp.c rename to src/print-hsrp.c diff --git a/print-http.c b/src/print-http.c similarity index 100% rename from print-http.c rename to src/print-http.c diff --git a/print-icmp.c b/src/print-icmp.c similarity index 100% rename from print-icmp.c rename to src/print-icmp.c diff --git a/print-icmp6.c b/src/print-icmp6.c similarity index 100% rename from print-icmp6.c rename to src/print-icmp6.c diff --git a/print-igmp.c b/src/print-igmp.c similarity index 100% rename from print-igmp.c rename to src/print-igmp.c diff --git a/print-igrp.c b/src/print-igrp.c similarity index 100% rename from print-igrp.c rename to src/print-igrp.c diff --git a/print-ip.c b/src/print-ip.c similarity index 100% rename from print-ip.c rename to src/print-ip.c diff --git a/print-ip6.c b/src/print-ip6.c similarity index 100% rename from print-ip6.c rename to src/print-ip6.c diff --git a/print-ip6opts.c b/src/print-ip6opts.c similarity index 100% rename from print-ip6opts.c rename to src/print-ip6opts.c diff --git a/print-ipcomp.c b/src/print-ipcomp.c similarity index 100% rename from print-ipcomp.c rename to src/print-ipcomp.c diff --git a/print-ipfc.c b/src/print-ipfc.c similarity index 100% rename from print-ipfc.c rename to src/print-ipfc.c diff --git a/print-ipnet.c b/src/print-ipnet.c similarity index 100% rename from print-ipnet.c rename to src/print-ipnet.c diff --git a/print-ipx.c b/src/print-ipx.c similarity index 100% rename from print-ipx.c rename to src/print-ipx.c diff --git a/print-isakmp.c b/src/print-isakmp.c similarity index 100% rename from print-isakmp.c rename to src/print-isakmp.c diff --git a/print-isoclns.c b/src/print-isoclns.c similarity index 100% rename from print-isoclns.c rename to src/print-isoclns.c diff --git a/print-juniper.c b/src/print-juniper.c similarity index 100% rename from print-juniper.c rename to src/print-juniper.c diff --git a/print-krb.c b/src/print-krb.c similarity index 100% rename from print-krb.c rename to src/print-krb.c diff --git a/print-l2tp.c b/src/print-l2tp.c similarity index 100% rename from print-l2tp.c rename to src/print-l2tp.c diff --git a/print-lane.c b/src/print-lane.c similarity index 100% rename from print-lane.c rename to src/print-lane.c diff --git a/print-ldp.c b/src/print-ldp.c similarity index 100% rename from print-ldp.c rename to src/print-ldp.c diff --git a/print-lisp.c b/src/print-lisp.c similarity index 100% rename from print-lisp.c rename to src/print-lisp.c diff --git a/print-llc.c b/src/print-llc.c similarity index 100% rename from print-llc.c rename to src/print-llc.c diff --git a/print-lldp.c b/src/print-lldp.c similarity index 100% rename from print-lldp.c rename to src/print-lldp.c diff --git a/print-lmp.c b/src/print-lmp.c similarity index 100% rename from print-lmp.c rename to src/print-lmp.c diff --git a/print-loopback.c b/src/print-loopback.c similarity index 100% rename from print-loopback.c rename to src/print-loopback.c diff --git a/print-lspping.c b/src/print-lspping.c similarity index 100% rename from print-lspping.c rename to src/print-lspping.c diff --git a/print-lwapp.c b/src/print-lwapp.c similarity index 100% rename from print-lwapp.c rename to src/print-lwapp.c diff --git a/print-lwres.c b/src/print-lwres.c similarity index 100% rename from print-lwres.c rename to src/print-lwres.c diff --git a/print-m3ua.c b/src/print-m3ua.c similarity index 100% rename from print-m3ua.c rename to src/print-m3ua.c diff --git a/print-medsa.c b/src/print-medsa.c similarity index 100% rename from print-medsa.c rename to src/print-medsa.c diff --git a/print-mobile.c b/src/print-mobile.c similarity index 100% rename from print-mobile.c rename to src/print-mobile.c diff --git a/print-mobility.c b/src/print-mobility.c similarity index 100% rename from print-mobility.c rename to src/print-mobility.c diff --git a/print-mpcp.c b/src/print-mpcp.c similarity index 100% rename from print-mpcp.c rename to src/print-mpcp.c diff --git a/print-mpls.c b/src/print-mpls.c similarity index 100% rename from print-mpls.c rename to src/print-mpls.c diff --git a/print-mptcp.c b/src/print-mptcp.c similarity index 100% rename from print-mptcp.c rename to src/print-mptcp.c diff --git a/print-msdp.c b/src/print-msdp.c similarity index 100% rename from print-msdp.c rename to src/print-msdp.c diff --git a/print-msnlb.c b/src/print-msnlb.c similarity index 100% rename from print-msnlb.c rename to src/print-msnlb.c diff --git a/print-nflog.c b/src/print-nflog.c similarity index 100% rename from print-nflog.c rename to src/print-nflog.c diff --git a/print-nfs.c b/src/print-nfs.c similarity index 100% rename from print-nfs.c rename to src/print-nfs.c diff --git a/print-nsh.c b/src/print-nsh.c similarity index 100% rename from print-nsh.c rename to src/print-nsh.c diff --git a/print-ntp.c b/src/print-ntp.c similarity index 100% rename from print-ntp.c rename to src/print-ntp.c diff --git a/print-null.c b/src/print-null.c similarity index 100% rename from print-null.c rename to src/print-null.c diff --git a/print-olsr.c b/src/print-olsr.c similarity index 100% rename from print-olsr.c rename to src/print-olsr.c diff --git a/print-openflow-1.0.c b/src/print-openflow-1.0.c similarity index 100% rename from print-openflow-1.0.c rename to src/print-openflow-1.0.c diff --git a/print-openflow.c b/src/print-openflow.c similarity index 100% rename from print-openflow.c rename to src/print-openflow.c diff --git a/print-ospf.c b/src/print-ospf.c similarity index 100% rename from print-ospf.c rename to src/print-ospf.c diff --git a/print-ospf6.c b/src/print-ospf6.c similarity index 100% rename from print-ospf6.c rename to src/print-ospf6.c diff --git a/print-otv.c b/src/print-otv.c similarity index 100% rename from print-otv.c rename to src/print-otv.c diff --git a/print-pflog.c b/src/print-pflog.c similarity index 100% rename from print-pflog.c rename to src/print-pflog.c diff --git a/print-pgm.c b/src/print-pgm.c similarity index 100% rename from print-pgm.c rename to src/print-pgm.c diff --git a/print-pim.c b/src/print-pim.c similarity index 100% rename from print-pim.c rename to src/print-pim.c diff --git a/print-pktap.c b/src/print-pktap.c similarity index 100% rename from print-pktap.c rename to src/print-pktap.c diff --git a/print-ppi.c b/src/print-ppi.c similarity index 100% rename from print-ppi.c rename to src/print-ppi.c diff --git a/print-ppp.c b/src/print-ppp.c similarity index 100% rename from print-ppp.c rename to src/print-ppp.c diff --git a/print-pppoe.c b/src/print-pppoe.c similarity index 100% rename from print-pppoe.c rename to src/print-pppoe.c diff --git a/print-pptp.c b/src/print-pptp.c similarity index 100% rename from print-pptp.c rename to src/print-pptp.c diff --git a/print-radius.c b/src/print-radius.c similarity index 100% rename from print-radius.c rename to src/print-radius.c diff --git a/print-raw.c b/src/print-raw.c similarity index 100% rename from print-raw.c rename to src/print-raw.c diff --git a/print-resp.c b/src/print-resp.c similarity index 100% rename from print-resp.c rename to src/print-resp.c diff --git a/print-rip.c b/src/print-rip.c similarity index 100% rename from print-rip.c rename to src/print-rip.c diff --git a/print-ripng.c b/src/print-ripng.c similarity index 100% rename from print-ripng.c rename to src/print-ripng.c diff --git a/print-rpki-rtr.c b/src/print-rpki-rtr.c similarity index 100% rename from print-rpki-rtr.c rename to src/print-rpki-rtr.c diff --git a/print-rrcp.c b/src/print-rrcp.c similarity index 100% rename from print-rrcp.c rename to src/print-rrcp.c diff --git a/print-rsvp.c b/src/print-rsvp.c similarity index 100% rename from print-rsvp.c rename to src/print-rsvp.c diff --git a/print-rt6.c b/src/print-rt6.c similarity index 100% rename from print-rt6.c rename to src/print-rt6.c diff --git a/print-rtsp.c b/src/print-rtsp.c similarity index 100% rename from print-rtsp.c rename to src/print-rtsp.c diff --git a/print-rx.c b/src/print-rx.c similarity index 100% rename from print-rx.c rename to src/print-rx.c diff --git a/print-sctp.c b/src/print-sctp.c similarity index 100% rename from print-sctp.c rename to src/print-sctp.c diff --git a/print-sflow.c b/src/print-sflow.c similarity index 100% rename from print-sflow.c rename to src/print-sflow.c diff --git a/print-sip.c b/src/print-sip.c similarity index 100% rename from print-sip.c rename to src/print-sip.c diff --git a/print-sl.c b/src/print-sl.c similarity index 100% rename from print-sl.c rename to src/print-sl.c diff --git a/print-sll.c b/src/print-sll.c similarity index 100% rename from print-sll.c rename to src/print-sll.c diff --git a/print-slow.c b/src/print-slow.c similarity index 100% rename from print-slow.c rename to src/print-slow.c diff --git a/print-smb.c b/src/print-smb.c similarity index 100% rename from print-smb.c rename to src/print-smb.c diff --git a/print-smtp.c b/src/print-smtp.c similarity index 100% rename from print-smtp.c rename to src/print-smtp.c diff --git a/print-snmp.c b/src/print-snmp.c similarity index 100% rename from print-snmp.c rename to src/print-snmp.c diff --git a/print-stp.c b/src/print-stp.c similarity index 100% rename from print-stp.c rename to src/print-stp.c diff --git a/print-sunatm.c b/src/print-sunatm.c similarity index 100% rename from print-sunatm.c rename to src/print-sunatm.c diff --git a/print-sunrpc.c b/src/print-sunrpc.c similarity index 100% rename from print-sunrpc.c rename to src/print-sunrpc.c diff --git a/print-symantec.c b/src/print-symantec.c similarity index 100% rename from print-symantec.c rename to src/print-symantec.c diff --git a/print-syslog.c b/src/print-syslog.c similarity index 100% rename from print-syslog.c rename to src/print-syslog.c diff --git a/print-tcp.c b/src/print-tcp.c similarity index 100% rename from print-tcp.c rename to src/print-tcp.c diff --git a/print-telnet.c b/src/print-telnet.c similarity index 100% rename from print-telnet.c rename to src/print-telnet.c diff --git a/print-tftp.c b/src/print-tftp.c similarity index 100% rename from print-tftp.c rename to src/print-tftp.c diff --git a/print-timed.c b/src/print-timed.c similarity index 100% rename from print-timed.c rename to src/print-timed.c diff --git a/print-tipc.c b/src/print-tipc.c similarity index 100% rename from print-tipc.c rename to src/print-tipc.c diff --git a/print-token.c b/src/print-token.c similarity index 100% rename from print-token.c rename to src/print-token.c diff --git a/print-udld.c b/src/print-udld.c similarity index 100% rename from print-udld.c rename to src/print-udld.c diff --git a/print-udp.c b/src/print-udp.c similarity index 100% rename from print-udp.c rename to src/print-udp.c diff --git a/print-usb.c b/src/print-usb.c similarity index 100% rename from print-usb.c rename to src/print-usb.c diff --git a/print-vjc.c b/src/print-vjc.c similarity index 100% rename from print-vjc.c rename to src/print-vjc.c diff --git a/print-vqp.c b/src/print-vqp.c similarity index 100% rename from print-vqp.c rename to src/print-vqp.c diff --git a/print-vrrp.c b/src/print-vrrp.c similarity index 100% rename from print-vrrp.c rename to src/print-vrrp.c diff --git a/print-vtp.c b/src/print-vtp.c similarity index 100% rename from print-vtp.c rename to src/print-vtp.c diff --git a/print-vxlan-gpe.c b/src/print-vxlan-gpe.c similarity index 100% rename from print-vxlan-gpe.c rename to src/print-vxlan-gpe.c diff --git a/print-vxlan.c b/src/print-vxlan.c similarity index 100% rename from print-vxlan.c rename to src/print-vxlan.c diff --git a/print-wb.c b/src/print-wb.c similarity index 100% rename from print-wb.c rename to src/print-wb.c diff --git a/print-zephyr.c b/src/print-zephyr.c similarity index 100% rename from print-zephyr.c rename to src/print-zephyr.c diff --git a/print-zeromq.c b/src/print-zeromq.c similarity index 100% rename from print-zeromq.c rename to src/print-zeromq.c diff --git a/print.c b/src/print.c similarity index 100% rename from print.c rename to src/print.c diff --git a/print.h b/src/print.h similarity index 100% rename from print.h rename to src/print.h diff --git a/rpc_auth.h b/src/rpc_auth.h similarity index 100% rename from rpc_auth.h rename to src/rpc_auth.h diff --git a/rpc_msg.h b/src/rpc_msg.h similarity index 100% rename from rpc_msg.h rename to src/rpc_msg.h diff --git a/rpl.h b/src/rpl.h similarity index 100% rename from rpl.h rename to src/rpl.h diff --git a/send-ack.awk b/src/send-ack.awk similarity index 100% rename from send-ack.awk rename to src/send-ack.awk diff --git a/setsignal.c b/src/setsignal.c similarity index 100% rename from setsignal.c rename to src/setsignal.c diff --git a/setsignal.h b/src/setsignal.h similarity index 100% rename from setsignal.h rename to src/setsignal.h diff --git a/signature.c b/src/signature.c similarity index 100% rename from signature.c rename to src/signature.c diff --git a/signature.h b/src/signature.h similarity index 100% rename from signature.h rename to src/signature.h diff --git a/slcompress.h b/src/slcompress.h similarity index 100% rename from slcompress.h rename to src/slcompress.h diff --git a/smb.h b/src/smb.h similarity index 100% rename from smb.h rename to src/smb.h diff --git a/smbutil.c b/src/smbutil.c similarity index 100% rename from smbutil.c rename to src/smbutil.c diff --git a/stime.awk b/src/stime.awk similarity index 100% rename from stime.awk rename to src/stime.awk diff --git a/stream_base.h b/src/stream_base.h similarity index 100% rename from stream_base.h rename to src/stream_base.h diff --git a/strtoaddr.c b/src/strtoaddr.c similarity index 100% rename from strtoaddr.c rename to src/strtoaddr.c diff --git a/strtoaddr.h b/src/strtoaddr.h similarity index 100% rename from strtoaddr.h rename to src/strtoaddr.h diff --git a/tcp.h b/src/tcp.h similarity index 100% rename from tcp.h rename to src/tcp.h diff --git a/tcpdump.1.in b/src/tcpdump.1.in similarity index 100% rename from tcpdump.1.in rename to src/tcpdump.1.in diff --git a/tcpdump.c b/src/tcpdump.c similarity index 97% rename from tcpdump.c rename to src/tcpdump.c index ae20036..8029e28 100644 --- a/tcpdump.c +++ b/src/tcpdump.c @@ -44,7 +44,6 @@ #define MESA_DUMP (1) #if MESA_DUMP #include "mesa_pkt_dump.h" -const int tcpdump_mesa_version_VERSION_20181114 = 20181114; int tcpdump_data_offset = 0; /* 鐢ㄤ簬璺宠繃鏌愪簺搴曞眰鏁版嵁, 濡倂xlan, 鍙互鐩存帴鑾峰彇鎴栬缃繃婊ゆ潯浠剁湅vxlan鐨勫唴灞傛暟鎹寘鍐呭 */ unsigned char tcpdump_thread_index_array[64]; /* 寮鍚崟鍖呯嚎绋媔d鏁扮粍, 闈犻暱搴﹀喅瀹歩d鏁伴噺, 姣忎釜鍗1瀛楄妭, 鍛戒护琛岃緭鍏ユ敮鎸侀楀彿鍒嗛殧 */ int tcpdump_thread_index_array_num = 0; @@ -151,6 +150,12 @@ The Regents of the University of California. All rights reserved.\n"; #include "print.h" +#ifdef GIT_VERSION +const char *tcpdump_mesa_version = (const char *)GIT_VERSION; +#else +const char *tcpdump_mesa_version = "GIT_VERSION_UNKNOWN"; +#endif + #ifndef PATH_MAX #define PATH_MAX 1024 #endif @@ -986,7 +991,7 @@ static int pkt_dump_recv_ack(int connfd) */ static void *detect_sapp_alive_thread(void *arg) { - int tcp_cmd_fd = (int)arg; + int tcp_cmd_fd = (int)(long)arg; int ret; char nouse_buf[1500]; @@ -1156,7 +1161,7 @@ static int MESA_dump_start(unsigned short udp_rcv_port, unsigned short sapp_cmd_ exit(1); } - pthread_create(&pid, NULL, detect_sapp_alive_thread, (void *)tcp_cmd_fd); + pthread_create(&pid, NULL, detect_sapp_alive_thread, (void *)(long)tcp_cmd_fd); return tcp_cmd_fd; } @@ -1272,6 +1277,7 @@ static void MESA_dump(pcap_handler callback, u_char *pcap_userdata, char *filter /* 濡傛灉鏈-g鍙傛暟, 涓斿啓浜-w, 鍗抽渶瑕佷繚瀛樺師濮嬪寘鍒版枃浠, 鍒欎笉杩涜seek鎿嶄綔, 鍙槸鍦ㄦ病鏈-w 鍙傛暟鏃, 璁﹖cpdump鑳芥墦鍗板嚭鍖呯殑淇℃伅, 鎵嶈繘琛宻eek鎿嶄綔. */ + #if 0 if((greedy_seek_flag != 0) && (dump_to_file_flag == 0)){ inner_pkt_len = MESA_dump_seek_to_inner(pkt_buf, pkt_len); if(inner_pkt_len < 0){ @@ -1283,6 +1289,10 @@ static void MESA_dump(pcap_handler callback, u_char *pcap_userdata, char *filter phony_pcap_hdr.caplen = pkt_len; phony_pcap_hdr.len = pkt_len; } + #else + phony_pcap_hdr.caplen = pkt_len; + phony_pcap_hdr.len = pkt_len; + #endif gettimeofday(&phony_pcap_hdr.ts, NULL); callback(pcap_userdata, &phony_pcap_hdr, pkt_buf); /* NOTE: 鍒峰睆妯″紡璋冪敤print_packet(); 鎹曞寘妯″紡璋冪敤: dump_packet() */ @@ -1305,7 +1315,6 @@ done: #endif static struct bpf_program fcode; /* lijia modify, 鍋氫负鍏ㄥ眬鍙橀噺, 鍏朵粬鍑芥暟涓皟鐢 */ - int main(int argc, char **argv) { @@ -2274,6 +2283,15 @@ main(int argc, char **argv) if (pcap_setfilter(pd, &fcode) < 0) error("%s", pcap_geterr(pd)); } + else + { + pcap_freecode(&fcode); + if(pcap_compile_nopcap(Oflag, DLT_RAW, &fcode, cmdbuf, 0, netmask) < 0){ + printf("Compile pcap filter %s error\n", cmdbuf); + return -1; + } + } + #else if (pcap_setfilter(pd, &fcode) < 0) error("%s", pcap_geterr(pd)); @@ -2948,20 +2966,45 @@ dump_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *sp) static void MESA_dump_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *raw_pkt) { - char modify_pkt_buf[2048]; + //char modify_pkt_buf[2048]; int inner_pkt_len; ++packets_captured; ++infodelay; - memcpy(modify_pkt_buf, raw_pkt, h->caplen >= 2048? 2048:h->caplen); - inner_pkt_len = MESA_dump_seek_to_inner(modify_pkt_buf, h->caplen); - if(inner_pkt_len < 0){ - return; + //memcpy(modify_pkt_buf, raw_pkt, h->caplen >= 2048? 2048:h->caplen); + //inner_pkt_len = MESA_dump_seek_to_inner(modify_pkt_buf, h->caplen); + //if(inner_pkt_len < 0){ + // return; + //} + struct mesa_ip4_hdr *ip4hdr_greedy; + struct mesa_ip6_hdr *ip6hdr_greedy; + const unsigned char *inner_iphdr = NULL; + ip4hdr_greedy = (struct mesa_ip4_hdr *)MESA_net_jump_to_layer_greedy(raw_pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V4); + if(ip4hdr_greedy) + { + inner_iphdr = (const unsigned char *)ip4hdr_greedy; + inner_pkt_len = h->caplen - ((const u_char *)ip4hdr_greedy - raw_pkt) ; } + else + { + ip6hdr_greedy = (struct mesa_ip6_hdr *)MESA_net_jump_to_layer_greedy(raw_pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V6); + if(ip6hdr_greedy) + { + inner_iphdr = (const unsigned char *)ip6hdr_greedy; + inner_pkt_len = h->caplen - ((const u_char *)ip6hdr_greedy - raw_pkt); + } + else + { + return; + } + + } + + if(has_bpf_filter_flag != 0){ if(0 == bpf_filter(fcode.bf_insns, - (const unsigned char *)modify_pkt_buf, inner_pkt_len, inner_pkt_len)){ + (const unsigned char *)inner_iphdr, inner_pkt_len, inner_pkt_len)){ return; } } @@ -2999,6 +3042,7 @@ MESA_dump_print_packet(u_char *user, const struct pcap_pkthdr *h, const u_char * { int inner_pkt_len; +#if 0 /* 姝ゅ嚱鏁颁粎鐢ㄤ簬tcpdump灞忓箷鎵撳嵃, 鐩存帴淇敼pkt鍘熷鍖, 閬垮厤鍐峜opy涓娆, 鑺傜害鐐笴PU */ inner_pkt_len = MESA_dump_seek_to_inner(pkt, h->caplen); if(inner_pkt_len < 0){ @@ -3015,7 +3059,41 @@ MESA_dump_print_packet(u_char *user, const struct pcap_pkthdr *h, const u_char * /* 鏀逛负鏂扮殑淇敼鍚庣殑鏁版嵁鍖呴暱搴 */ ((struct pcap_pkthdr *)h)->caplen = (unsigned int)inner_pkt_len; ((struct pcap_pkthdr *)h)->len = (unsigned int)inner_pkt_len; +#else + struct mesa_ip4_hdr *ip4hdr_greedy; + struct mesa_ip6_hdr *ip6hdr_greedy; + const unsigned char *inner_iphdr = NULL; + ip4hdr_greedy = (struct mesa_ip4_hdr *)MESA_net_jump_to_layer_greedy(pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V4); + if(ip4hdr_greedy) + { + inner_iphdr = (const unsigned char *)ip4hdr_greedy; + inner_pkt_len = h->caplen - ((const unsigned char *)ip4hdr_greedy - pkt); + } + else + { + ip6hdr_greedy = (struct mesa_ip6_hdr *)MESA_net_jump_to_layer_greedy(pkt, ADDR_TYPE_MAC, __ADDR_TYPE_IP_PAIR_V6); + if(ip6hdr_greedy) + { + inner_iphdr = (const unsigned char *)ip6hdr_greedy; + inner_pkt_len = h->caplen - ((const unsigned char *)ip6hdr_greedy - pkt); + } + else + { + return; + } + + } + if (has_bpf_filter_flag != 0) + { + if (0 == bpf_filter(fcode.bf_insns, + (const unsigned char *)inner_iphdr, inner_pkt_len, inner_pkt_len)) + { + return; + } + } + +#endif print_packet(user, h, pkt); } @@ -3150,7 +3228,7 @@ print_usage(void) (void)fprintf(stderr, "----------------------------------------------------------------------------------------------.\n"); (void)fprintf(stderr, -"\t\tThe follow args is customized for tcpdump_mesa(%d):\n", tcpdump_mesa_version_VERSION_20181114); +"\t\tThe follow args is customized for tcpdump_mesa(%s):\n", tcpdump_mesa_version); (void)fprintf(stderr, "\t\t[ -a ] enable perceptive mode, can detect loss packet number.\n"); (void)fprintf(stderr, diff --git a/tests/02-sunrise-sunset-esp.pcap b/src/tests/02-sunrise-sunset-esp.pcap similarity index 100% rename from tests/02-sunrise-sunset-esp.pcap rename to src/tests/02-sunrise-sunset-esp.pcap diff --git a/tests/08-sunrise-sunset-aes.pcap b/src/tests/08-sunrise-sunset-aes.pcap similarity index 100% rename from tests/08-sunrise-sunset-aes.pcap rename to src/tests/08-sunrise-sunset-aes.pcap diff --git a/tests/08-sunrise-sunset-esp2.pcap b/src/tests/08-sunrise-sunset-esp2.pcap similarity index 100% rename from tests/08-sunrise-sunset-esp2.pcap rename to src/tests/08-sunrise-sunset-esp2.pcap diff --git a/tests/3560_CDP.pcap b/src/tests/3560_CDP.pcap similarity index 100% rename from tests/3560_CDP.pcap rename to src/tests/3560_CDP.pcap diff --git a/tests/802.1D_spanning_tree.pcap b/src/tests/802.1D_spanning_tree.pcap similarity index 100% rename from tests/802.1D_spanning_tree.pcap rename to src/tests/802.1D_spanning_tree.pcap diff --git a/tests/802.1w_rapid_STP.pcap b/src/tests/802.1w_rapid_STP.pcap similarity index 100% rename from tests/802.1w_rapid_STP.pcap rename to src/tests/802.1w_rapid_STP.pcap diff --git a/tests/AoE_Linux.pcap b/src/tests/AoE_Linux.pcap similarity index 100% rename from tests/AoE_Linux.pcap rename to src/tests/AoE_Linux.pcap diff --git a/tests/DECnet_Phone.pcap b/src/tests/DECnet_Phone.pcap similarity index 100% rename from tests/DECnet_Phone.pcap rename to src/tests/DECnet_Phone.pcap diff --git a/tests/DTP.pcap b/src/tests/DTP.pcap similarity index 100% rename from tests/DTP.pcap rename to src/tests/DTP.pcap diff --git a/tests/EIGRP_adjacency.pcap b/src/tests/EIGRP_adjacency.pcap similarity index 100% rename from tests/EIGRP_adjacency.pcap rename to src/tests/EIGRP_adjacency.pcap diff --git a/tests/EIGRP_goodbye.pcap b/src/tests/EIGRP_goodbye.pcap similarity index 100% rename from tests/EIGRP_goodbye.pcap rename to src/tests/EIGRP_goodbye.pcap diff --git a/tests/EIGRP_subnet_down.pcap b/src/tests/EIGRP_subnet_down.pcap similarity index 100% rename from tests/EIGRP_subnet_down.pcap rename to src/tests/EIGRP_subnet_down.pcap diff --git a/tests/EIGRP_subnet_up.pcap b/src/tests/EIGRP_subnet_up.pcap similarity index 100% rename from tests/EIGRP_subnet_up.pcap rename to src/tests/EIGRP_subnet_up.pcap diff --git a/tests/HDLC.pcap b/src/tests/HDLC.pcap similarity index 100% rename from tests/HDLC.pcap rename to src/tests/HDLC.pcap diff --git a/tests/HSRP_coup.pcap b/src/tests/HSRP_coup.pcap similarity index 100% rename from tests/HSRP_coup.pcap rename to src/tests/HSRP_coup.pcap diff --git a/tests/HSRP_election.pcap b/src/tests/HSRP_election.pcap similarity index 100% rename from tests/HSRP_election.pcap rename to src/tests/HSRP_election.pcap diff --git a/tests/HSRP_failover.pcap b/src/tests/HSRP_failover.pcap similarity index 100% rename from tests/HSRP_failover.pcap rename to src/tests/HSRP_failover.pcap diff --git a/tests/IGMP_V1.pcap b/src/tests/IGMP_V1.pcap similarity index 100% rename from tests/IGMP_V1.pcap rename to src/tests/IGMP_V1.pcap diff --git a/tests/IGMP_V2.pcap b/src/tests/IGMP_V2.pcap similarity index 100% rename from tests/IGMP_V2.pcap rename to src/tests/IGMP_V2.pcap diff --git a/tests/ISAKMP_sa_setup.pcap b/src/tests/ISAKMP_sa_setup.pcap similarity index 100% rename from tests/ISAKMP_sa_setup.pcap rename to src/tests/ISAKMP_sa_setup.pcap diff --git a/tests/ISIS_external_lsp.pcap b/src/tests/ISIS_external_lsp.pcap similarity index 100% rename from tests/ISIS_external_lsp.pcap rename to src/tests/ISIS_external_lsp.pcap diff --git a/tests/ISIS_level1_adjacency.pcap b/src/tests/ISIS_level1_adjacency.pcap similarity index 100% rename from tests/ISIS_level1_adjacency.pcap rename to src/tests/ISIS_level1_adjacency.pcap diff --git a/tests/ISIS_level2_adjacency.pcap b/src/tests/ISIS_level2_adjacency.pcap similarity index 100% rename from tests/ISIS_level2_adjacency.pcap rename to src/tests/ISIS_level2_adjacency.pcap diff --git a/tests/ISIS_p2p_adjacency.pcap b/src/tests/ISIS_p2p_adjacency.pcap similarity index 100% rename from tests/ISIS_p2p_adjacency.pcap rename to src/tests/ISIS_p2p_adjacency.pcap diff --git a/tests/LACP.pcap b/src/tests/LACP.pcap similarity index 100% rename from tests/LACP.pcap rename to src/tests/LACP.pcap diff --git a/tests/LLDP_and_CDP.pcap b/src/tests/LLDP_and_CDP.pcap similarity index 100% rename from tests/LLDP_and_CDP.pcap rename to src/tests/LLDP_and_CDP.pcap diff --git a/tests/MSTP_Intra-Region_BPDUs.pcap b/src/tests/MSTP_Intra-Region_BPDUs.pcap similarity index 100% rename from tests/MSTP_Intra-Region_BPDUs.pcap rename to src/tests/MSTP_Intra-Region_BPDUs.pcap diff --git a/tests/OLSRv1_HNA_sgw_1.out b/src/tests/OLSRv1_HNA_sgw_1.out similarity index 100% rename from tests/OLSRv1_HNA_sgw_1.out rename to src/tests/OLSRv1_HNA_sgw_1.out diff --git a/tests/OLSRv1_HNA_sgw_1.pcap b/src/tests/OLSRv1_HNA_sgw_1.pcap similarity index 100% rename from tests/OLSRv1_HNA_sgw_1.pcap rename to src/tests/OLSRv1_HNA_sgw_1.pcap diff --git a/tests/OSPFv3_NBMA_adjacencies.pcap b/src/tests/OSPFv3_NBMA_adjacencies.pcap similarity index 100% rename from tests/OSPFv3_NBMA_adjacencies.pcap rename to src/tests/OSPFv3_NBMA_adjacencies.pcap diff --git a/tests/OSPFv3_broadcast_adjacency.pcap b/src/tests/OSPFv3_broadcast_adjacency.pcap similarity index 100% rename from tests/OSPFv3_broadcast_adjacency.pcap rename to src/tests/OSPFv3_broadcast_adjacency.pcap diff --git a/tests/OSPFv3_multipoint_adjacencies.pcap b/src/tests/OSPFv3_multipoint_adjacencies.pcap similarity index 100% rename from tests/OSPFv3_multipoint_adjacencies.pcap rename to src/tests/OSPFv3_multipoint_adjacencies.pcap diff --git a/tests/OSPFv3_with_AH.pcap b/src/tests/OSPFv3_with_AH.pcap similarity index 100% rename from tests/OSPFv3_with_AH.pcap rename to src/tests/OSPFv3_with_AH.pcap diff --git a/tests/PIM-DM_pruning.pcap b/src/tests/PIM-DM_pruning.pcap similarity index 100% rename from tests/PIM-DM_pruning.pcap rename to src/tests/PIM-DM_pruning.pcap diff --git a/tests/PIM-SM_join_prune.pcap b/src/tests/PIM-SM_join_prune.pcap similarity index 100% rename from tests/PIM-SM_join_prune.pcap rename to src/tests/PIM-SM_join_prune.pcap diff --git a/tests/PIM_register_register-stop.pcap b/src/tests/PIM_register_register-stop.pcap similarity index 100% rename from tests/PIM_register_register-stop.pcap rename to src/tests/PIM_register_register-stop.pcap diff --git a/tests/PIMv2_bootstrap.pcap b/src/tests/PIMv2_bootstrap.pcap similarity index 100% rename from tests/PIMv2_bootstrap.pcap rename to src/tests/PIMv2_bootstrap.pcap diff --git a/tests/PIMv2_hellos.pcap b/src/tests/PIMv2_hellos.pcap similarity index 100% rename from tests/PIMv2_hellos.pcap rename to src/tests/PIMv2_hellos.pcap diff --git a/tests/QinQpacket.out b/src/tests/QinQpacket.out similarity index 100% rename from tests/QinQpacket.out rename to src/tests/QinQpacket.out diff --git a/tests/QinQpacket.pcap b/src/tests/QinQpacket.pcap similarity index 100% rename from tests/QinQpacket.pcap rename to src/tests/QinQpacket.pcap diff --git a/tests/QinQpacketv.out b/src/tests/QinQpacketv.out similarity index 100% rename from tests/QinQpacketv.out rename to src/tests/QinQpacketv.out diff --git a/tests/RADIUS-RFC4675.pcap b/src/tests/RADIUS-RFC4675.pcap similarity index 100% rename from tests/RADIUS-RFC4675.pcap rename to src/tests/RADIUS-RFC4675.pcap diff --git a/tests/RADIUS-RFC5176.pcap b/src/tests/RADIUS-RFC5176.pcap similarity index 100% rename from tests/RADIUS-RFC5176.pcap rename to src/tests/RADIUS-RFC5176.pcap diff --git a/tests/RADIUS-port1700.pcap b/src/tests/RADIUS-port1700.pcap similarity index 100% rename from tests/RADIUS-port1700.pcap rename to src/tests/RADIUS-port1700.pcap diff --git a/tests/RADIUS.pcap b/src/tests/RADIUS.pcap similarity index 100% rename from tests/RADIUS.pcap rename to src/tests/RADIUS.pcap diff --git a/tests/TESTLIST b/src/tests/TESTLIST similarity index 100% rename from tests/TESTLIST rename to src/tests/TESTLIST diff --git a/tests/TESTonce b/src/tests/TESTonce similarity index 100% rename from tests/TESTonce rename to src/tests/TESTonce diff --git a/tests/TESTrun.sh b/src/tests/TESTrun.sh similarity index 100% rename from tests/TESTrun.sh rename to src/tests/TESTrun.sh diff --git a/tests/UDLD.pcap b/src/tests/UDLD.pcap similarity index 100% rename from tests/UDLD.pcap rename to src/tests/UDLD.pcap diff --git a/tests/ahcp-vv.out b/src/tests/ahcp-vv.out similarity index 100% rename from tests/ahcp-vv.out rename to src/tests/ahcp-vv.out diff --git a/tests/ahcp.pcap b/src/tests/ahcp.pcap similarity index 100% rename from tests/ahcp.pcap rename to src/tests/ahcp.pcap diff --git a/tests/aoe_1-v.out b/src/tests/aoe_1-v.out similarity index 100% rename from tests/aoe_1-v.out rename to src/tests/aoe_1-v.out diff --git a/tests/aoe_1.out b/src/tests/aoe_1.out similarity index 100% rename from tests/aoe_1.out rename to src/tests/aoe_1.out diff --git a/tests/babel.pcap b/src/tests/babel.pcap similarity index 100% rename from tests/babel.pcap rename to src/tests/babel.pcap diff --git a/tests/babel1.out b/src/tests/babel1.out similarity index 100% rename from tests/babel1.out rename to src/tests/babel1.out diff --git a/tests/babel1v.out b/src/tests/babel1v.out similarity index 100% rename from tests/babel1v.out rename to src/tests/babel1v.out diff --git a/tests/babel_auth.out b/src/tests/babel_auth.out similarity index 100% rename from tests/babel_auth.out rename to src/tests/babel_auth.out diff --git a/tests/babel_auth.pcap b/src/tests/babel_auth.pcap similarity index 100% rename from tests/babel_auth.pcap rename to src/tests/babel_auth.pcap diff --git a/tests/babel_pad1.out b/src/tests/babel_pad1.out similarity index 100% rename from tests/babel_pad1.out rename to src/tests/babel_pad1.out diff --git a/tests/babel_pad1.pcap b/src/tests/babel_pad1.pcap similarity index 100% rename from tests/babel_pad1.pcap rename to src/tests/babel_pad1.pcap diff --git a/tests/babel_rtt.out b/src/tests/babel_rtt.out similarity index 100% rename from tests/babel_rtt.out rename to src/tests/babel_rtt.out diff --git a/tests/babel_rtt.pcap b/src/tests/babel_rtt.pcap similarity index 100% rename from tests/babel_rtt.pcap rename to src/tests/babel_rtt.pcap diff --git a/tests/bgp-aigp.out b/src/tests/bgp-aigp.out similarity index 100% rename from tests/bgp-aigp.out rename to src/tests/bgp-aigp.out diff --git a/tests/bgp-aigp.pcap b/src/tests/bgp-aigp.pcap similarity index 100% rename from tests/bgp-aigp.pcap rename to src/tests/bgp-aigp.pcap diff --git a/tests/bgp-infinite-loop.pcap b/src/tests/bgp-infinite-loop.pcap similarity index 100% rename from tests/bgp-infinite-loop.pcap rename to src/tests/bgp-infinite-loop.pcap diff --git a/tests/bgp_infloop-v.out b/src/tests/bgp_infloop-v.out similarity index 100% rename from tests/bgp_infloop-v.out rename to src/tests/bgp_infloop-v.out diff --git a/tests/bgp_vpn_attrset.out b/src/tests/bgp_vpn_attrset.out similarity index 100% rename from tests/bgp_vpn_attrset.out rename to src/tests/bgp_vpn_attrset.out diff --git a/tests/bgp_vpn_attrset.pcap b/src/tests/bgp_vpn_attrset.pcap similarity index 100% rename from tests/bgp_vpn_attrset.pcap rename to src/tests/bgp_vpn_attrset.pcap diff --git a/tests/cdp-v.out b/src/tests/cdp-v.out similarity index 100% rename from tests/cdp-v.out rename to src/tests/cdp-v.out diff --git a/tests/chdlc-slarp-short.pcap b/src/tests/chdlc-slarp-short.pcap similarity index 100% rename from tests/chdlc-slarp-short.pcap rename to src/tests/chdlc-slarp-short.pcap diff --git a/tests/chdlc-slarp.pcap b/src/tests/chdlc-slarp.pcap similarity index 100% rename from tests/chdlc-slarp.pcap rename to src/tests/chdlc-slarp.pcap diff --git a/tests/crypto.sh b/src/tests/crypto.sh similarity index 100% rename from tests/crypto.sh rename to src/tests/crypto.sh diff --git a/tests/cve-2014-8767-OLSR.out b/src/tests/cve-2014-8767-OLSR.out similarity index 100% rename from tests/cve-2014-8767-OLSR.out rename to src/tests/cve-2014-8767-OLSR.out diff --git a/tests/cve-2014-8767-OLSR.pcap b/src/tests/cve-2014-8767-OLSR.pcap similarity index 100% rename from tests/cve-2014-8767-OLSR.pcap rename to src/tests/cve-2014-8767-OLSR.pcap diff --git a/tests/cve-2014-8768-Geonet.out b/src/tests/cve-2014-8768-Geonet.out similarity index 100% rename from tests/cve-2014-8768-Geonet.out rename to src/tests/cve-2014-8768-Geonet.out diff --git a/tests/cve-2014-8768-Geonet.pcap b/src/tests/cve-2014-8768-Geonet.pcap similarity index 100% rename from tests/cve-2014-8768-Geonet.pcap rename to src/tests/cve-2014-8768-Geonet.pcap diff --git a/tests/cve-2014-8769-AODV.out b/src/tests/cve-2014-8769-AODV.out similarity index 100% rename from tests/cve-2014-8769-AODV.out rename to src/tests/cve-2014-8769-AODV.out diff --git a/tests/cve-2014-8769-AODV.pcap b/src/tests/cve-2014-8769-AODV.pcap similarity index 100% rename from tests/cve-2014-8769-AODV.pcap rename to src/tests/cve-2014-8769-AODV.pcap diff --git a/tests/cve2015-0261-crash.out b/src/tests/cve2015-0261-crash.out similarity index 100% rename from tests/cve2015-0261-crash.out rename to src/tests/cve2015-0261-crash.out diff --git a/tests/cve2015-0261-crash.pcap b/src/tests/cve2015-0261-crash.pcap similarity index 100% rename from tests/cve2015-0261-crash.pcap rename to src/tests/cve2015-0261-crash.pcap diff --git a/tests/cve2015-0261-ipv6.out b/src/tests/cve2015-0261-ipv6.out similarity index 100% rename from tests/cve2015-0261-ipv6.out rename to src/tests/cve2015-0261-ipv6.out diff --git a/tests/cve2015-0261-ipv6.pcap b/src/tests/cve2015-0261-ipv6.pcap similarity index 100% rename from tests/cve2015-0261-ipv6.pcap rename to src/tests/cve2015-0261-ipv6.pcap diff --git a/tests/dcb_ets.out b/src/tests/dcb_ets.out similarity index 100% rename from tests/dcb_ets.out rename to src/tests/dcb_ets.out diff --git a/tests/dcb_ets.pcap b/src/tests/dcb_ets.pcap similarity index 100% rename from tests/dcb_ets.pcap rename to src/tests/dcb_ets.pcap diff --git a/tests/dcb_pfc.out b/src/tests/dcb_pfc.out similarity index 100% rename from tests/dcb_pfc.out rename to src/tests/dcb_pfc.out diff --git a/tests/dcb_pfc.pcap b/src/tests/dcb_pfc.pcap similarity index 100% rename from tests/dcb_pfc.pcap rename to src/tests/dcb_pfc.pcap diff --git a/tests/dcb_qcn.out b/src/tests/dcb_qcn.out similarity index 100% rename from tests/dcb_qcn.out rename to src/tests/dcb_qcn.out diff --git a/tests/dcb_qcn.pcap b/src/tests/dcb_qcn.pcap similarity index 100% rename from tests/dcb_qcn.pcap rename to src/tests/dcb_qcn.pcap diff --git a/tests/dccp_partial_csum_v4_longer.out b/src/tests/dccp_partial_csum_v4_longer.out similarity index 100% rename from tests/dccp_partial_csum_v4_longer.out rename to src/tests/dccp_partial_csum_v4_longer.out diff --git a/tests/dccp_partial_csum_v4_longer.pcap b/src/tests/dccp_partial_csum_v4_longer.pcap similarity index 100% rename from tests/dccp_partial_csum_v4_longer.pcap rename to src/tests/dccp_partial_csum_v4_longer.pcap diff --git a/tests/dccp_partial_csum_v4_simple.out b/src/tests/dccp_partial_csum_v4_simple.out similarity index 100% rename from tests/dccp_partial_csum_v4_simple.out rename to src/tests/dccp_partial_csum_v4_simple.out diff --git a/tests/dccp_partial_csum_v4_simple.pcap b/src/tests/dccp_partial_csum_v4_simple.pcap similarity index 100% rename from tests/dccp_partial_csum_v4_simple.pcap rename to src/tests/dccp_partial_csum_v4_simple.pcap diff --git a/tests/dccp_partial_csum_v6_longer.out b/src/tests/dccp_partial_csum_v6_longer.out similarity index 100% rename from tests/dccp_partial_csum_v6_longer.out rename to src/tests/dccp_partial_csum_v6_longer.out diff --git a/tests/dccp_partial_csum_v6_longer.pcap b/src/tests/dccp_partial_csum_v6_longer.pcap similarity index 100% rename from tests/dccp_partial_csum_v6_longer.pcap rename to src/tests/dccp_partial_csum_v6_longer.pcap diff --git a/tests/dccp_partial_csum_v6_simple.out b/src/tests/dccp_partial_csum_v6_simple.out similarity index 100% rename from tests/dccp_partial_csum_v6_simple.out rename to src/tests/dccp_partial_csum_v6_simple.out diff --git a/tests/dccp_partial_csum_v6_simple.pcap b/src/tests/dccp_partial_csum_v6_simple.pcap similarity index 100% rename from tests/dccp_partial_csum_v6_simple.pcap rename to src/tests/dccp_partial_csum_v6_simple.pcap diff --git a/tests/decnet.out b/src/tests/decnet.out similarity index 100% rename from tests/decnet.out rename to src/tests/decnet.out diff --git a/tests/dhcp-rfc3004-v.out b/src/tests/dhcp-rfc3004-v.out similarity index 100% rename from tests/dhcp-rfc3004-v.out rename to src/tests/dhcp-rfc3004-v.out diff --git a/tests/dhcp-rfc3004.pcap b/src/tests/dhcp-rfc3004.pcap similarity index 100% rename from tests/dhcp-rfc3004.pcap rename to src/tests/dhcp-rfc3004.pcap diff --git a/tests/dhcp-rfc5859-v.out b/src/tests/dhcp-rfc5859-v.out similarity index 100% rename from tests/dhcp-rfc5859-v.out rename to src/tests/dhcp-rfc5859-v.out diff --git a/tests/dhcp-rfc5859.pcap b/src/tests/dhcp-rfc5859.pcap similarity index 100% rename from tests/dhcp-rfc5859.pcap rename to src/tests/dhcp-rfc5859.pcap diff --git a/tests/dhcpv6-AFTR-Name-RFC6334.out b/src/tests/dhcpv6-AFTR-Name-RFC6334.out similarity index 100% rename from tests/dhcpv6-AFTR-Name-RFC6334.out rename to src/tests/dhcpv6-AFTR-Name-RFC6334.out diff --git a/tests/dhcpv6-AFTR-Name-RFC6334.pcap b/src/tests/dhcpv6-AFTR-Name-RFC6334.pcap similarity index 100% rename from tests/dhcpv6-AFTR-Name-RFC6334.pcap rename to src/tests/dhcpv6-AFTR-Name-RFC6334.pcap diff --git a/tests/dhcpv6-domain-list.out b/src/tests/dhcpv6-domain-list.out similarity index 100% rename from tests/dhcpv6-domain-list.out rename to src/tests/dhcpv6-domain-list.out diff --git a/tests/dhcpv6-domain-list.pcap b/src/tests/dhcpv6-domain-list.pcap similarity index 100% rename from tests/dhcpv6-domain-list.pcap rename to src/tests/dhcpv6-domain-list.pcap diff --git a/tests/dhcpv6-ia-na.out b/src/tests/dhcpv6-ia-na.out similarity index 100% rename from tests/dhcpv6-ia-na.out rename to src/tests/dhcpv6-ia-na.out diff --git a/tests/dhcpv6-ia-na.pcap b/src/tests/dhcpv6-ia-na.pcap similarity index 100% rename from tests/dhcpv6-ia-na.pcap rename to src/tests/dhcpv6-ia-na.pcap diff --git a/tests/dhcpv6-ia-pd.out b/src/tests/dhcpv6-ia-pd.out similarity index 100% rename from tests/dhcpv6-ia-pd.out rename to src/tests/dhcpv6-ia-pd.out diff --git a/tests/dhcpv6-ia-pd.pcap b/src/tests/dhcpv6-ia-pd.pcap similarity index 100% rename from tests/dhcpv6-ia-pd.pcap rename to src/tests/dhcpv6-ia-pd.pcap diff --git a/tests/dhcpv6-ia-ta.out b/src/tests/dhcpv6-ia-ta.out similarity index 100% rename from tests/dhcpv6-ia-ta.out rename to src/tests/dhcpv6-ia-ta.out diff --git a/tests/dhcpv6-ia-ta.pcap b/src/tests/dhcpv6-ia-ta.pcap similarity index 100% rename from tests/dhcpv6-ia-ta.pcap rename to src/tests/dhcpv6-ia-ta.pcap diff --git a/tests/dhcpv6-ntp-server.out b/src/tests/dhcpv6-ntp-server.out similarity index 100% rename from tests/dhcpv6-ntp-server.out rename to src/tests/dhcpv6-ntp-server.out diff --git a/tests/dhcpv6-ntp-server.pcap b/src/tests/dhcpv6-ntp-server.pcap similarity index 100% rename from tests/dhcpv6-ntp-server.pcap rename to src/tests/dhcpv6-ntp-server.pcap diff --git a/tests/dhcpv6-sip-server-d.out b/src/tests/dhcpv6-sip-server-d.out similarity index 100% rename from tests/dhcpv6-sip-server-d.out rename to src/tests/dhcpv6-sip-server-d.out diff --git a/tests/dhcpv6-sip-server-d.pcap b/src/tests/dhcpv6-sip-server-d.pcap similarity index 100% rename from tests/dhcpv6-sip-server-d.pcap rename to src/tests/dhcpv6-sip-server-d.pcap diff --git a/tests/dnssec-vv.out b/src/tests/dnssec-vv.out similarity index 100% rename from tests/dnssec-vv.out rename to src/tests/dnssec-vv.out diff --git a/tests/dnssec.pcap b/src/tests/dnssec.pcap similarity index 100% rename from tests/dnssec.pcap rename to src/tests/dnssec.pcap diff --git a/tests/dtp-v.out b/src/tests/dtp-v.out similarity index 100% rename from tests/dtp-v.out rename to src/tests/dtp-v.out diff --git a/tests/dvmrp.out b/src/tests/dvmrp.out similarity index 100% rename from tests/dvmrp.out rename to src/tests/dvmrp.out diff --git a/tests/e1000g.out b/src/tests/e1000g.out similarity index 100% rename from tests/e1000g.out rename to src/tests/e1000g.out diff --git a/tests/e1000g.pcap b/src/tests/e1000g.pcap similarity index 100% rename from tests/e1000g.pcap rename to src/tests/e1000g.pcap diff --git a/tests/eapon1.gdbinit b/src/tests/eapon1.gdbinit similarity index 100% rename from tests/eapon1.gdbinit rename to src/tests/eapon1.gdbinit diff --git a/tests/eapon1.out b/src/tests/eapon1.out similarity index 100% rename from tests/eapon1.out rename to src/tests/eapon1.out diff --git a/tests/eapon1.pcap b/src/tests/eapon1.pcap similarity index 100% rename from tests/eapon1.pcap rename to src/tests/eapon1.pcap diff --git a/tests/eigrp1-v.out b/src/tests/eigrp1-v.out similarity index 100% rename from tests/eigrp1-v.out rename to src/tests/eigrp1-v.out diff --git a/tests/eigrp2-v.out b/src/tests/eigrp2-v.out similarity index 100% rename from tests/eigrp2-v.out rename to src/tests/eigrp2-v.out diff --git a/tests/eigrp3-v.out b/src/tests/eigrp3-v.out similarity index 100% rename from tests/eigrp3-v.out rename to src/tests/eigrp3-v.out diff --git a/tests/eigrp4-v.out b/src/tests/eigrp4-v.out similarity index 100% rename from tests/eigrp4-v.out rename to src/tests/eigrp4-v.out diff --git a/tests/epgm_zmtp1.pcap b/src/tests/epgm_zmtp1.pcap similarity index 100% rename from tests/epgm_zmtp1.pcap rename to src/tests/epgm_zmtp1.pcap diff --git a/tests/epgm_zmtp1v.out b/src/tests/epgm_zmtp1v.out similarity index 100% rename from tests/epgm_zmtp1v.out rename to src/tests/epgm_zmtp1v.out diff --git a/tests/epgmv.out b/src/tests/epgmv.out similarity index 100% rename from tests/epgmv.out rename to src/tests/epgmv.out diff --git a/tests/esp-secrets.txt b/src/tests/esp-secrets.txt similarity index 100% rename from tests/esp-secrets.txt rename to src/tests/esp-secrets.txt diff --git a/tests/esp0.out b/src/tests/esp0.out similarity index 100% rename from tests/esp0.out rename to src/tests/esp0.out diff --git a/tests/esp1.gdbinit b/src/tests/esp1.gdbinit similarity index 100% rename from tests/esp1.gdbinit rename to src/tests/esp1.gdbinit diff --git a/tests/esp1.out b/src/tests/esp1.out similarity index 100% rename from tests/esp1.out rename to src/tests/esp1.out diff --git a/tests/esp2.gdbinit b/src/tests/esp2.gdbinit similarity index 100% rename from tests/esp2.gdbinit rename to src/tests/esp2.gdbinit diff --git a/tests/esp2.out b/src/tests/esp2.out similarity index 100% rename from tests/esp2.out rename to src/tests/esp2.out diff --git a/tests/esp3.gdbinit b/src/tests/esp3.gdbinit similarity index 100% rename from tests/esp3.gdbinit rename to src/tests/esp3.gdbinit diff --git a/tests/esp4.gdbinit b/src/tests/esp4.gdbinit similarity index 100% rename from tests/esp4.gdbinit rename to src/tests/esp4.gdbinit diff --git a/tests/esp5.gdbinit b/src/tests/esp5.gdbinit similarity index 100% rename from tests/esp5.gdbinit rename to src/tests/esp5.gdbinit diff --git a/tests/esp5.out b/src/tests/esp5.out similarity index 100% rename from tests/esp5.out rename to src/tests/esp5.out diff --git a/tests/espudp1.out b/src/tests/espudp1.out similarity index 100% rename from tests/espudp1.out rename to src/tests/espudp1.out diff --git a/tests/espudp1.pcap b/src/tests/espudp1.pcap similarity index 100% rename from tests/espudp1.pcap rename to src/tests/espudp1.pcap diff --git a/tests/evb.out b/src/tests/evb.out similarity index 100% rename from tests/evb.out rename to src/tests/evb.out diff --git a/tests/evb.pcap b/src/tests/evb.pcap similarity index 100% rename from tests/evb.pcap rename to src/tests/evb.pcap diff --git a/tests/failure-outputs.txt b/src/tests/failure-outputs.txt similarity index 100% rename from tests/failure-outputs.txt rename to src/tests/failure-outputs.txt diff --git a/tests/forces1.out b/src/tests/forces1.out similarity index 100% rename from tests/forces1.out rename to src/tests/forces1.out diff --git a/tests/forces1.pcap b/src/tests/forces1.pcap similarity index 100% rename from tests/forces1.pcap rename to src/tests/forces1.pcap diff --git a/tests/forces1vvv.out b/src/tests/forces1vvv.out similarity index 100% rename from tests/forces1vvv.out rename to src/tests/forces1vvv.out diff --git a/tests/forces1vvvv.out b/src/tests/forces1vvvv.out similarity index 100% rename from tests/forces1vvvv.out rename to src/tests/forces1vvvv.out diff --git a/tests/forces2.pcap b/src/tests/forces2.pcap similarity index 100% rename from tests/forces2.pcap rename to src/tests/forces2.pcap diff --git a/tests/forces2v.out b/src/tests/forces2v.out similarity index 100% rename from tests/forces2v.out rename to src/tests/forces2v.out diff --git a/tests/forces2vv.out b/src/tests/forces2vv.out similarity index 100% rename from tests/forces2vv.out rename to src/tests/forces2vv.out diff --git a/tests/forces2vvv.out b/src/tests/forces2vvv.out similarity index 100% rename from tests/forces2vvv.out rename to src/tests/forces2vvv.out diff --git a/tests/forces3.pcap b/src/tests/forces3.pcap similarity index 100% rename from tests/forces3.pcap rename to src/tests/forces3.pcap diff --git a/tests/forces3vvv.out b/src/tests/forces3vvv.out similarity index 100% rename from tests/forces3vvv.out rename to src/tests/forces3vvv.out diff --git a/tests/geneve-tcp.out b/src/tests/geneve-tcp.out similarity index 100% rename from tests/geneve-tcp.out rename to src/tests/geneve-tcp.out diff --git a/tests/geneve-vni.out b/src/tests/geneve-vni.out similarity index 100% rename from tests/geneve-vni.out rename to src/tests/geneve-vni.out diff --git a/tests/geneve-vv.out b/src/tests/geneve-vv.out similarity index 100% rename from tests/geneve-vv.out rename to src/tests/geneve-vv.out diff --git a/tests/geneve.pcap b/src/tests/geneve.pcap similarity index 100% rename from tests/geneve.pcap rename to src/tests/geneve.pcap diff --git a/tests/geonet_and_calm_fast.out b/src/tests/geonet_and_calm_fast.out similarity index 100% rename from tests/geonet_and_calm_fast.out rename to src/tests/geonet_and_calm_fast.out diff --git a/tests/geonet_and_calm_fast.pcap b/src/tests/geonet_and_calm_fast.pcap similarity index 100% rename from tests/geonet_and_calm_fast.pcap rename to src/tests/geonet_and_calm_fast.pcap diff --git a/tests/hdlc1.out b/src/tests/hdlc1.out similarity index 100% rename from tests/hdlc1.out rename to src/tests/hdlc1.out diff --git a/tests/hdlc2.out b/src/tests/hdlc2.out similarity index 100% rename from tests/hdlc2.out rename to src/tests/hdlc2.out diff --git a/tests/hdlc3.out b/src/tests/hdlc3.out similarity index 100% rename from tests/hdlc3.out rename to src/tests/hdlc3.out diff --git a/tests/hdlc4.out b/src/tests/hdlc4.out similarity index 100% rename from tests/hdlc4.out rename to src/tests/hdlc4.out diff --git a/tests/hdlc_slarp.pcap b/src/tests/hdlc_slarp.pcap similarity index 100% rename from tests/hdlc_slarp.pcap rename to src/tests/hdlc_slarp.pcap diff --git a/tests/hncp.out b/src/tests/hncp.out similarity index 100% rename from tests/hncp.out rename to src/tests/hncp.out diff --git a/tests/hncp.pcap b/src/tests/hncp.pcap similarity index 100% rename from tests/hncp.pcap rename to src/tests/hncp.pcap diff --git a/tests/hsrp_1-v.out b/src/tests/hsrp_1-v.out similarity index 100% rename from tests/hsrp_1-v.out rename to src/tests/hsrp_1-v.out diff --git a/tests/hsrp_1.out b/src/tests/hsrp_1.out similarity index 100% rename from tests/hsrp_1.out rename to src/tests/hsrp_1.out diff --git a/tests/hsrp_2-v.out b/src/tests/hsrp_2-v.out similarity index 100% rename from tests/hsrp_2-v.out rename to src/tests/hsrp_2-v.out diff --git a/tests/hsrp_3-v.out b/src/tests/hsrp_3-v.out similarity index 100% rename from tests/hsrp_3-v.out rename to src/tests/hsrp_3-v.out diff --git a/tests/icmpv6.out b/src/tests/icmpv6.out similarity index 100% rename from tests/icmpv6.out rename to src/tests/icmpv6.out diff --git a/tests/icmpv6.pcap b/src/tests/icmpv6.pcap similarity index 100% rename from tests/icmpv6.pcap rename to src/tests/icmpv6.pcap diff --git a/tests/icmpv6_opt24-v.out b/src/tests/icmpv6_opt24-v.out similarity index 100% rename from tests/icmpv6_opt24-v.out rename to src/tests/icmpv6_opt24-v.out diff --git a/tests/icmpv6_opt24.pcap b/src/tests/icmpv6_opt24.pcap similarity index 100% rename from tests/icmpv6_opt24.pcap rename to src/tests/icmpv6_opt24.pcap diff --git a/tests/ieee802.11_exthdr.out b/src/tests/ieee802.11_exthdr.out similarity index 100% rename from tests/ieee802.11_exthdr.out rename to src/tests/ieee802.11_exthdr.out diff --git a/tests/ieee802.11_exthdr.pcap b/src/tests/ieee802.11_exthdr.pcap similarity index 100% rename from tests/ieee802.11_exthdr.pcap rename to src/tests/ieee802.11_exthdr.pcap diff --git a/tests/ieee802.11_rx-stbc.out b/src/tests/ieee802.11_rx-stbc.out similarity index 100% rename from tests/ieee802.11_rx-stbc.out rename to src/tests/ieee802.11_rx-stbc.out diff --git a/tests/ieee802.11_rx-stbc.pcap b/src/tests/ieee802.11_rx-stbc.pcap similarity index 100% rename from tests/ieee802.11_rx-stbc.pcap rename to src/tests/ieee802.11_rx-stbc.pcap diff --git a/tests/igmpv1.out b/src/tests/igmpv1.out similarity index 100% rename from tests/igmpv1.out rename to src/tests/igmpv1.out diff --git a/tests/igmpv2.out b/src/tests/igmpv2.out similarity index 100% rename from tests/igmpv2.out rename to src/tests/igmpv2.out diff --git a/tests/igmpv3-queries.out b/src/tests/igmpv3-queries.out similarity index 100% rename from tests/igmpv3-queries.out rename to src/tests/igmpv3-queries.out diff --git a/tests/igmpv3-queries.pcap b/src/tests/igmpv3-queries.pcap similarity index 100% rename from tests/igmpv3-queries.pcap rename to src/tests/igmpv3-queries.pcap diff --git a/tests/ikev2four.out b/src/tests/ikev2four.out similarity index 100% rename from tests/ikev2four.out rename to src/tests/ikev2four.out diff --git a/tests/ikev2four.pcap b/src/tests/ikev2four.pcap similarity index 100% rename from tests/ikev2four.pcap rename to src/tests/ikev2four.pcap diff --git a/tests/ikev2fourv.out b/src/tests/ikev2fourv.out similarity index 100% rename from tests/ikev2fourv.out rename to src/tests/ikev2fourv.out diff --git a/tests/ikev2fourv4.out b/src/tests/ikev2fourv4.out similarity index 100% rename from tests/ikev2fourv4.out rename to src/tests/ikev2fourv4.out diff --git a/tests/ikev2pI2-secrets.txt b/src/tests/ikev2pI2-secrets.txt similarity index 100% rename from tests/ikev2pI2-secrets.txt rename to src/tests/ikev2pI2-secrets.txt diff --git a/tests/ikev2pI2.out b/src/tests/ikev2pI2.out similarity index 100% rename from tests/ikev2pI2.out rename to src/tests/ikev2pI2.out diff --git a/tests/ikev2pI2.pcap b/src/tests/ikev2pI2.pcap similarity index 100% rename from tests/ikev2pI2.pcap rename to src/tests/ikev2pI2.pcap diff --git a/tests/ipv6-bad-version.out b/src/tests/ipv6-bad-version.out similarity index 100% rename from tests/ipv6-bad-version.out rename to src/tests/ipv6-bad-version.out diff --git a/tests/ipv6-bad-version.pcap b/src/tests/ipv6-bad-version.pcap similarity index 100% rename from tests/ipv6-bad-version.pcap rename to src/tests/ipv6-bad-version.pcap diff --git a/tests/ipv6-routing-header.out b/src/tests/ipv6-routing-header.out similarity index 100% rename from tests/ipv6-routing-header.out rename to src/tests/ipv6-routing-header.out diff --git a/tests/ipv6-routing-header.pcap b/src/tests/ipv6-routing-header.pcap similarity index 100% rename from tests/ipv6-routing-header.pcap rename to src/tests/ipv6-routing-header.pcap diff --git a/tests/isakmp-delete-segfault.pcap b/src/tests/isakmp-delete-segfault.pcap similarity index 100% rename from tests/isakmp-delete-segfault.pcap rename to src/tests/isakmp-delete-segfault.pcap diff --git a/tests/isakmp-identification-segfault.pcap b/src/tests/isakmp-identification-segfault.pcap similarity index 100% rename from tests/isakmp-identification-segfault.pcap rename to src/tests/isakmp-identification-segfault.pcap diff --git a/tests/isakmp-pointer-loop.pcap b/src/tests/isakmp-pointer-loop.pcap similarity index 100% rename from tests/isakmp-pointer-loop.pcap rename to src/tests/isakmp-pointer-loop.pcap diff --git a/tests/isakmp1.out b/src/tests/isakmp1.out similarity index 100% rename from tests/isakmp1.out rename to src/tests/isakmp1.out diff --git a/tests/isakmp2.out b/src/tests/isakmp2.out similarity index 100% rename from tests/isakmp2.out rename to src/tests/isakmp2.out diff --git a/tests/isakmp3.out b/src/tests/isakmp3.out similarity index 100% rename from tests/isakmp3.out rename to src/tests/isakmp3.out diff --git a/tests/isakmp4.out b/src/tests/isakmp4.out similarity index 100% rename from tests/isakmp4.out rename to src/tests/isakmp4.out diff --git a/tests/isakmp4500.pcap b/src/tests/isakmp4500.pcap similarity index 100% rename from tests/isakmp4500.pcap rename to src/tests/isakmp4500.pcap diff --git a/tests/isakmp5-v.out b/src/tests/isakmp5-v.out similarity index 100% rename from tests/isakmp5-v.out rename to src/tests/isakmp5-v.out diff --git a/tests/isis-infinite-loop.pcap b/src/tests/isis-infinite-loop.pcap similarity index 100% rename from tests/isis-infinite-loop.pcap rename to src/tests/isis-infinite-loop.pcap diff --git a/tests/isis_1-v.out b/src/tests/isis_1-v.out similarity index 100% rename from tests/isis_1-v.out rename to src/tests/isis_1-v.out diff --git a/tests/isis_1.out b/src/tests/isis_1.out similarity index 100% rename from tests/isis_1.out rename to src/tests/isis_1.out diff --git a/tests/isis_2-v.out b/src/tests/isis_2-v.out similarity index 100% rename from tests/isis_2-v.out rename to src/tests/isis_2-v.out diff --git a/tests/isis_3-v.out b/src/tests/isis_3-v.out similarity index 100% rename from tests/isis_3-v.out rename to src/tests/isis_3-v.out diff --git a/tests/isis_4-v.out b/src/tests/isis_4-v.out similarity index 100% rename from tests/isis_4-v.out rename to src/tests/isis_4-v.out diff --git a/tests/isis_infloop-v.out b/src/tests/isis_infloop-v.out similarity index 100% rename from tests/isis_infloop-v.out rename to src/tests/isis_infloop-v.out diff --git a/tests/isis_poi.out b/src/tests/isis_poi.out similarity index 100% rename from tests/isis_poi.out rename to src/tests/isis_poi.out diff --git a/tests/isis_poi.pcap b/src/tests/isis_poi.pcap similarity index 100% rename from tests/isis_poi.pcap rename to src/tests/isis_poi.pcap diff --git a/tests/isis_poi2.out b/src/tests/isis_poi2.out similarity index 100% rename from tests/isis_poi2.out rename to src/tests/isis_poi2.out diff --git a/tests/isis_poi2.pcap b/src/tests/isis_poi2.pcap similarity index 100% rename from tests/isis_poi2.pcap rename to src/tests/isis_poi2.pcap diff --git a/tests/isup.out b/src/tests/isup.out similarity index 100% rename from tests/isup.out rename to src/tests/isup.out diff --git a/tests/isup.pcap b/src/tests/isup.pcap similarity index 100% rename from tests/isup.pcap rename to src/tests/isup.pcap diff --git a/tests/isupvv.out b/src/tests/isupvv.out similarity index 100% rename from tests/isupvv.out rename to src/tests/isupvv.out diff --git a/tests/kday1.out b/src/tests/kday1.out similarity index 100% rename from tests/kday1.out rename to src/tests/kday1.out diff --git a/tests/kday1.pcap b/src/tests/kday1.pcap similarity index 100% rename from tests/kday1.pcap rename to src/tests/kday1.pcap diff --git a/tests/kday2.out b/src/tests/kday2.out similarity index 100% rename from tests/kday2.out rename to src/tests/kday2.out diff --git a/tests/kday2.pcap b/src/tests/kday2.pcap similarity index 100% rename from tests/kday2.pcap rename to src/tests/kday2.pcap diff --git a/tests/kday3.out b/src/tests/kday3.out similarity index 100% rename from tests/kday3.out rename to src/tests/kday3.out diff --git a/tests/kday3.pcap b/src/tests/kday3.pcap similarity index 100% rename from tests/kday3.pcap rename to src/tests/kday3.pcap diff --git a/tests/kday4.out b/src/tests/kday4.out similarity index 100% rename from tests/kday4.out rename to src/tests/kday4.out diff --git a/tests/kday4.pcap b/src/tests/kday4.pcap similarity index 100% rename from tests/kday4.pcap rename to src/tests/kday4.pcap diff --git a/tests/kday5.out b/src/tests/kday5.out similarity index 100% rename from tests/kday5.out rename to src/tests/kday5.out diff --git a/tests/kday5.pcap b/src/tests/kday5.pcap similarity index 100% rename from tests/kday5.pcap rename to src/tests/kday5.pcap diff --git a/tests/kday6.out b/src/tests/kday6.out similarity index 100% rename from tests/kday6.out rename to src/tests/kday6.out diff --git a/tests/kday6.pcap b/src/tests/kday6.pcap similarity index 100% rename from tests/kday6.pcap rename to src/tests/kday6.pcap diff --git a/tests/kday7.out b/src/tests/kday7.out similarity index 100% rename from tests/kday7.out rename to src/tests/kday7.out diff --git a/tests/kday7.pcap b/src/tests/kday7.pcap similarity index 100% rename from tests/kday7.pcap rename to src/tests/kday7.pcap diff --git a/tests/kday8.out b/src/tests/kday8.out similarity index 100% rename from tests/kday8.out rename to src/tests/kday8.out diff --git a/tests/kday8.pcap b/src/tests/kday8.pcap similarity index 100% rename from tests/kday8.pcap rename to src/tests/kday8.pcap diff --git a/tests/lacp-ev.out b/src/tests/lacp-ev.out similarity index 100% rename from tests/lacp-ev.out rename to src/tests/lacp-ev.out diff --git a/tests/ldp-infinite-loop.pcap b/src/tests/ldp-infinite-loop.pcap similarity index 100% rename from tests/ldp-infinite-loop.pcap rename to src/tests/ldp-infinite-loop.pcap diff --git a/tests/ldp_infloop.out b/src/tests/ldp_infloop.out similarity index 100% rename from tests/ldp_infloop.out rename to src/tests/ldp_infloop.out diff --git a/tests/lisp_eid_notify.out b/src/tests/lisp_eid_notify.out similarity index 100% rename from tests/lisp_eid_notify.out rename to src/tests/lisp_eid_notify.out diff --git a/tests/lisp_eid_notify.pcap b/src/tests/lisp_eid_notify.pcap similarity index 100% rename from tests/lisp_eid_notify.pcap rename to src/tests/lisp_eid_notify.pcap diff --git a/tests/lisp_eid_register.out b/src/tests/lisp_eid_register.out similarity index 100% rename from tests/lisp_eid_register.out rename to src/tests/lisp_eid_register.out diff --git a/tests/lisp_eid_register.pcap b/src/tests/lisp_eid_register.pcap similarity index 100% rename from tests/lisp_eid_register.pcap rename to src/tests/lisp_eid_register.pcap diff --git a/tests/lisp_ipv6.out b/src/tests/lisp_ipv6.out similarity index 100% rename from tests/lisp_ipv6.out rename to src/tests/lisp_ipv6.out diff --git a/tests/lisp_ipv6.pcap b/src/tests/lisp_ipv6.pcap similarity index 100% rename from tests/lisp_ipv6.pcap rename to src/tests/lisp_ipv6.pcap diff --git a/tests/lldp_cdp-ev.out b/src/tests/lldp_cdp-ev.out similarity index 100% rename from tests/lldp_cdp-ev.out rename to src/tests/lldp_cdp-ev.out diff --git a/tests/lmp-v.out b/src/tests/lmp-v.out similarity index 100% rename from tests/lmp-v.out rename to src/tests/lmp-v.out diff --git a/tests/lmp-v.sh b/src/tests/lmp-v.sh similarity index 100% rename from tests/lmp-v.sh rename to src/tests/lmp-v.sh diff --git a/tests/lmp.out b/src/tests/lmp.out similarity index 100% rename from tests/lmp.out rename to src/tests/lmp.out diff --git a/tests/lmp.pcap b/src/tests/lmp.pcap similarity index 100% rename from tests/lmp.pcap rename to src/tests/lmp.pcap diff --git a/tests/loopback.out b/src/tests/loopback.out similarity index 100% rename from tests/loopback.out rename to src/tests/loopback.out diff --git a/tests/loopback.pcap b/src/tests/loopback.pcap similarity index 100% rename from tests/loopback.pcap rename to src/tests/loopback.pcap diff --git a/tests/lspping-fec-ldp-v.out b/src/tests/lspping-fec-ldp-v.out similarity index 100% rename from tests/lspping-fec-ldp-v.out rename to src/tests/lspping-fec-ldp-v.out diff --git a/tests/lspping-fec-ldp-vv.out b/src/tests/lspping-fec-ldp-vv.out similarity index 100% rename from tests/lspping-fec-ldp-vv.out rename to src/tests/lspping-fec-ldp-vv.out diff --git a/tests/lspping-fec-ldp.out b/src/tests/lspping-fec-ldp.out similarity index 100% rename from tests/lspping-fec-ldp.out rename to src/tests/lspping-fec-ldp.out diff --git a/tests/lspping-fec-ldp.pcap b/src/tests/lspping-fec-ldp.pcap similarity index 100% rename from tests/lspping-fec-ldp.pcap rename to src/tests/lspping-fec-ldp.pcap diff --git a/tests/lspping-fec-rsvp-v.out b/src/tests/lspping-fec-rsvp-v.out similarity index 100% rename from tests/lspping-fec-rsvp-v.out rename to src/tests/lspping-fec-rsvp-v.out diff --git a/tests/lspping-fec-rsvp-vv.out b/src/tests/lspping-fec-rsvp-vv.out similarity index 100% rename from tests/lspping-fec-rsvp-vv.out rename to src/tests/lspping-fec-rsvp-vv.out diff --git a/tests/lspping-fec-rsvp.out b/src/tests/lspping-fec-rsvp.out similarity index 100% rename from tests/lspping-fec-rsvp.out rename to src/tests/lspping-fec-rsvp.out diff --git a/tests/lspping-fec-rsvp.pcap b/src/tests/lspping-fec-rsvp.pcap similarity index 100% rename from tests/lspping-fec-rsvp.pcap rename to src/tests/lspping-fec-rsvp.pcap diff --git a/tests/medsa-e.out b/src/tests/medsa-e.out similarity index 100% rename from tests/medsa-e.out rename to src/tests/medsa-e.out diff --git a/tests/medsa.out b/src/tests/medsa.out similarity index 100% rename from tests/medsa.out rename to src/tests/medsa.out diff --git a/tests/medsa.pcap b/src/tests/medsa.pcap similarity index 100% rename from tests/medsa.pcap rename to src/tests/medsa.pcap diff --git a/tests/mpbgp-linklocal-nexthop.out b/src/tests/mpbgp-linklocal-nexthop.out similarity index 100% rename from tests/mpbgp-linklocal-nexthop.out rename to src/tests/mpbgp-linklocal-nexthop.out diff --git a/tests/mpbgp-linklocal-nexthop.pcap b/src/tests/mpbgp-linklocal-nexthop.pcap similarity index 100% rename from tests/mpbgp-linklocal-nexthop.pcap rename to src/tests/mpbgp-linklocal-nexthop.pcap diff --git a/tests/mpls-ldp-hello.out b/src/tests/mpls-ldp-hello.out similarity index 100% rename from tests/mpls-ldp-hello.out rename to src/tests/mpls-ldp-hello.out diff --git a/tests/mpls-ldp-hello.pcap b/src/tests/mpls-ldp-hello.pcap similarity index 100% rename from tests/mpls-ldp-hello.pcap rename to src/tests/mpls-ldp-hello.pcap diff --git a/tests/mpls-traceroute-v.out b/src/tests/mpls-traceroute-v.out similarity index 100% rename from tests/mpls-traceroute-v.out rename to src/tests/mpls-traceroute-v.out diff --git a/tests/mpls-traceroute.out b/src/tests/mpls-traceroute.out similarity index 100% rename from tests/mpls-traceroute.out rename to src/tests/mpls-traceroute.out diff --git a/tests/mpls-traceroute.pcap b/src/tests/mpls-traceroute.pcap similarity index 100% rename from tests/mpls-traceroute.pcap rename to src/tests/mpls-traceroute.pcap diff --git a/tests/mptcp-fclose.out b/src/tests/mptcp-fclose.out similarity index 100% rename from tests/mptcp-fclose.out rename to src/tests/mptcp-fclose.out diff --git a/tests/mptcp-fclose.pcap b/src/tests/mptcp-fclose.pcap similarity index 100% rename from tests/mptcp-fclose.pcap rename to src/tests/mptcp-fclose.pcap diff --git a/tests/mptcp.out b/src/tests/mptcp.out similarity index 100% rename from tests/mptcp.out rename to src/tests/mptcp.out diff --git a/tests/mptcp.pcap b/src/tests/mptcp.pcap similarity index 100% rename from tests/mptcp.pcap rename to src/tests/mptcp.pcap diff --git a/tests/mrinfo_query.pcap b/src/tests/mrinfo_query.pcap similarity index 100% rename from tests/mrinfo_query.pcap rename to src/tests/mrinfo_query.pcap diff --git a/tests/msnlb.out b/src/tests/msnlb.out similarity index 100% rename from tests/msnlb.out rename to src/tests/msnlb.out diff --git a/tests/msnlb.pcap b/src/tests/msnlb.pcap similarity index 100% rename from tests/msnlb.pcap rename to src/tests/msnlb.pcap diff --git a/tests/msnlb2.out b/src/tests/msnlb2.out similarity index 100% rename from tests/msnlb2.out rename to src/tests/msnlb2.out diff --git a/tests/msnlb2.pcap b/src/tests/msnlb2.pcap similarity index 100% rename from tests/msnlb2.pcap rename to src/tests/msnlb2.pcap diff --git a/tests/mstp-v.out b/src/tests/mstp-v.out similarity index 100% rename from tests/mstp-v.out rename to src/tests/mstp-v.out diff --git a/tests/mtrace.out b/src/tests/mtrace.out similarity index 100% rename from tests/mtrace.out rename to src/tests/mtrace.out diff --git a/tests/mtrace.pcap b/src/tests/mtrace.pcap similarity index 100% rename from tests/mtrace.pcap rename to src/tests/mtrace.pcap diff --git a/tests/nflog-e.out b/src/tests/nflog-e.out similarity index 100% rename from tests/nflog-e.out rename to src/tests/nflog-e.out diff --git a/tests/nflog-e.sh b/src/tests/nflog-e.sh similarity index 100% rename from tests/nflog-e.sh rename to src/tests/nflog-e.sh diff --git a/tests/nflog.pcap b/src/tests/nflog.pcap similarity index 100% rename from tests/nflog.pcap rename to src/tests/nflog.pcap diff --git a/tests/nsh-over-vxlan-gpe-v.out b/src/tests/nsh-over-vxlan-gpe-v.out similarity index 100% rename from tests/nsh-over-vxlan-gpe-v.out rename to src/tests/nsh-over-vxlan-gpe-v.out diff --git a/tests/nsh-over-vxlan-gpe-vv.out b/src/tests/nsh-over-vxlan-gpe-vv.out similarity index 100% rename from tests/nsh-over-vxlan-gpe-vv.out rename to src/tests/nsh-over-vxlan-gpe-vv.out diff --git a/tests/nsh-over-vxlan-gpe-vvv.out b/src/tests/nsh-over-vxlan-gpe-vvv.out similarity index 100% rename from tests/nsh-over-vxlan-gpe-vvv.out rename to src/tests/nsh-over-vxlan-gpe-vvv.out diff --git a/tests/nsh-over-vxlan-gpe.out b/src/tests/nsh-over-vxlan-gpe.out similarity index 100% rename from tests/nsh-over-vxlan-gpe.out rename to src/tests/nsh-over-vxlan-gpe.out diff --git a/tests/nsh-over-vxlan-gpe.pcap b/src/tests/nsh-over-vxlan-gpe.pcap similarity index 100% rename from tests/nsh-over-vxlan-gpe.pcap rename to src/tests/nsh-over-vxlan-gpe.pcap diff --git a/tests/of10_7050q-v.out b/src/tests/of10_7050q-v.out similarity index 100% rename from tests/of10_7050q-v.out rename to src/tests/of10_7050q-v.out diff --git a/tests/of10_7050q.pcap b/src/tests/of10_7050q.pcap similarity index 100% rename from tests/of10_7050q.pcap rename to src/tests/of10_7050q.pcap diff --git a/tests/of10_7050sx_bsn-vv.out b/src/tests/of10_7050sx_bsn-vv.out similarity index 100% rename from tests/of10_7050sx_bsn-vv.out rename to src/tests/of10_7050sx_bsn-vv.out diff --git a/tests/of10_7050sx_bsn.pcap b/src/tests/of10_7050sx_bsn.pcap similarity index 100% rename from tests/of10_7050sx_bsn.pcap rename to src/tests/of10_7050sx_bsn.pcap diff --git a/tests/of10_p3295-vv.out b/src/tests/of10_p3295-vv.out similarity index 100% rename from tests/of10_p3295-vv.out rename to src/tests/of10_p3295-vv.out diff --git a/tests/of10_p3295.pcap b/src/tests/of10_p3295.pcap similarity index 100% rename from tests/of10_p3295.pcap rename to src/tests/of10_p3295.pcap diff --git a/tests/of10_pf5240-vv.out b/src/tests/of10_pf5240-vv.out similarity index 100% rename from tests/of10_pf5240-vv.out rename to src/tests/of10_pf5240-vv.out diff --git a/tests/of10_pf5240.pcap b/src/tests/of10_pf5240.pcap similarity index 100% rename from tests/of10_pf5240.pcap rename to src/tests/of10_pf5240.pcap diff --git a/tests/of10_s4810-vvvv.out b/src/tests/of10_s4810-vvvv.out similarity index 100% rename from tests/of10_s4810-vvvv.out rename to src/tests/of10_s4810-vvvv.out diff --git a/tests/of10_s4810.pcap b/src/tests/of10_s4810.pcap similarity index 100% rename from tests/of10_s4810.pcap rename to src/tests/of10_s4810.pcap diff --git a/tests/ospf-gmpls.out b/src/tests/ospf-gmpls.out similarity index 100% rename from tests/ospf-gmpls.out rename to src/tests/ospf-gmpls.out diff --git a/tests/ospf-gmpls.pcap b/src/tests/ospf-gmpls.pcap similarity index 100% rename from tests/ospf-gmpls.pcap rename to src/tests/ospf-gmpls.pcap diff --git a/tests/ospf3_ah-vv.out b/src/tests/ospf3_ah-vv.out similarity index 100% rename from tests/ospf3_ah-vv.out rename to src/tests/ospf3_ah-vv.out diff --git a/tests/ospf3_auth-vv.out b/src/tests/ospf3_auth-vv.out similarity index 100% rename from tests/ospf3_auth-vv.out rename to src/tests/ospf3_auth-vv.out diff --git a/tests/ospf3_auth.pcap b/src/tests/ospf3_auth.pcap similarity index 100% rename from tests/ospf3_auth.pcap rename to src/tests/ospf3_auth.pcap diff --git a/tests/ospf3_bc-vv.out b/src/tests/ospf3_bc-vv.out similarity index 100% rename from tests/ospf3_bc-vv.out rename to src/tests/ospf3_bc-vv.out diff --git a/tests/ospf3_mp-vv.out b/src/tests/ospf3_mp-vv.out similarity index 100% rename from tests/ospf3_mp-vv.out rename to src/tests/ospf3_mp-vv.out diff --git a/tests/ospf3_nbma-vv.out b/src/tests/ospf3_nbma-vv.out similarity index 100% rename from tests/ospf3_nbma-vv.out rename to src/tests/ospf3_nbma-vv.out diff --git a/tests/pcap-invalid-version-1.out b/src/tests/pcap-invalid-version-1.out similarity index 100% rename from tests/pcap-invalid-version-1.out rename to src/tests/pcap-invalid-version-1.out diff --git a/tests/pcap-invalid-version-1.pcap b/src/tests/pcap-invalid-version-1.pcap similarity index 100% rename from tests/pcap-invalid-version-1.pcap rename to src/tests/pcap-invalid-version-1.pcap diff --git a/tests/pcap-invalid-version-2.out b/src/tests/pcap-invalid-version-2.out similarity index 100% rename from tests/pcap-invalid-version-2.out rename to src/tests/pcap-invalid-version-2.out diff --git a/tests/pcap-invalid-version-2.pcap b/src/tests/pcap-invalid-version-2.pcap similarity index 100% rename from tests/pcap-invalid-version-2.pcap rename to src/tests/pcap-invalid-version-2.pcap diff --git a/tests/pcap-ng-invalid-vers-1.out b/src/tests/pcap-ng-invalid-vers-1.out similarity index 100% rename from tests/pcap-ng-invalid-vers-1.out rename to src/tests/pcap-ng-invalid-vers-1.out diff --git a/tests/pcap-ng-invalid-vers-1.pcap b/src/tests/pcap-ng-invalid-vers-1.pcap similarity index 100% rename from tests/pcap-ng-invalid-vers-1.pcap rename to src/tests/pcap-ng-invalid-vers-1.pcap diff --git a/tests/pcap-ng-invalid-vers-2.out b/src/tests/pcap-ng-invalid-vers-2.out similarity index 100% rename from tests/pcap-ng-invalid-vers-2.out rename to src/tests/pcap-ng-invalid-vers-2.out diff --git a/tests/pcap-ng-invalid-vers-2.pcap b/src/tests/pcap-ng-invalid-vers-2.pcap similarity index 100% rename from tests/pcap-ng-invalid-vers-2.pcap rename to src/tests/pcap-ng-invalid-vers-2.pcap diff --git a/tests/pgm_zmtp1.pcap b/src/tests/pgm_zmtp1.pcap similarity index 100% rename from tests/pgm_zmtp1.pcap rename to src/tests/pgm_zmtp1.pcap diff --git a/tests/pgm_zmtp1v.out b/src/tests/pgm_zmtp1v.out similarity index 100% rename from tests/pgm_zmtp1v.out rename to src/tests/pgm_zmtp1v.out diff --git a/tests/pgmv.out b/src/tests/pgmv.out similarity index 100% rename from tests/pgmv.out rename to src/tests/pgmv.out diff --git a/tests/pimv2_bootstrap-v.out b/src/tests/pimv2_bootstrap-v.out similarity index 100% rename from tests/pimv2_bootstrap-v.out rename to src/tests/pimv2_bootstrap-v.out diff --git a/tests/pimv2_dm-v.out b/src/tests/pimv2_dm-v.out similarity index 100% rename from tests/pimv2_dm-v.out rename to src/tests/pimv2_dm-v.out diff --git a/tests/pimv2_hellos-v.out b/src/tests/pimv2_hellos-v.out similarity index 100% rename from tests/pimv2_hellos-v.out rename to src/tests/pimv2_hellos-v.out diff --git a/tests/pimv2_register-v.out b/src/tests/pimv2_register-v.out similarity index 100% rename from tests/pimv2_register-v.out rename to src/tests/pimv2_register-v.out diff --git a/tests/pimv2_sm-v.out b/src/tests/pimv2_sm-v.out similarity index 100% rename from tests/pimv2_sm-v.out rename to src/tests/pimv2_sm-v.out diff --git a/tests/pppoe.out b/src/tests/pppoe.out similarity index 100% rename from tests/pppoe.out rename to src/tests/pppoe.out diff --git a/tests/pppoe.pcap b/src/tests/pppoe.pcap similarity index 100% rename from tests/pppoe.pcap rename to src/tests/pppoe.pcap diff --git a/tests/pppoes.out b/src/tests/pppoes.out similarity index 100% rename from tests/pppoes.out rename to src/tests/pppoes.out diff --git a/tests/pppoes.pcap b/src/tests/pppoes.pcap similarity index 100% rename from tests/pppoes.pcap rename to src/tests/pppoes.pcap diff --git a/tests/pppoes_id.out b/src/tests/pppoes_id.out similarity index 100% rename from tests/pppoes_id.out rename to src/tests/pppoes_id.out diff --git a/tests/print-A.out b/src/tests/print-A.out similarity index 100% rename from tests/print-A.out rename to src/tests/print-A.out diff --git a/tests/print-AA.out b/src/tests/print-AA.out similarity index 100% rename from tests/print-AA.out rename to src/tests/print-AA.out diff --git a/tests/print-capX.out b/src/tests/print-capX.out similarity index 100% rename from tests/print-capX.out rename to src/tests/print-capX.out diff --git a/tests/print-capXX.out b/src/tests/print-capXX.out similarity index 100% rename from tests/print-capXX.out rename to src/tests/print-capXX.out diff --git a/tests/print-flags.pcap b/src/tests/print-flags.pcap similarity index 100% rename from tests/print-flags.pcap rename to src/tests/print-flags.pcap diff --git a/tests/print-x.out b/src/tests/print-x.out similarity index 100% rename from tests/print-x.out rename to src/tests/print-x.out diff --git a/tests/print-xx.out b/src/tests/print-xx.out similarity index 100% rename from tests/print-xx.out rename to src/tests/print-xx.out diff --git a/tests/radius-port1700-v.out b/src/tests/radius-port1700-v.out similarity index 100% rename from tests/radius-port1700-v.out rename to src/tests/radius-port1700-v.out diff --git a/tests/radius-rfc4675-v.out b/src/tests/radius-rfc4675-v.out similarity index 100% rename from tests/radius-rfc4675-v.out rename to src/tests/radius-rfc4675-v.out diff --git a/tests/radius-rfc5176-v.out b/src/tests/radius-rfc5176-v.out similarity index 100% rename from tests/radius-rfc5176-v.out rename to src/tests/radius-rfc5176-v.out diff --git a/tests/radius-v.out b/src/tests/radius-v.out similarity index 100% rename from tests/radius-v.out rename to src/tests/radius-v.out diff --git a/tests/resp_1.out b/src/tests/resp_1.out similarity index 100% rename from tests/resp_1.out rename to src/tests/resp_1.out diff --git a/tests/resp_1_benchmark.pcap b/src/tests/resp_1_benchmark.pcap similarity index 100% rename from tests/resp_1_benchmark.pcap rename to src/tests/resp_1_benchmark.pcap diff --git a/tests/resp_2.out b/src/tests/resp_2.out similarity index 100% rename from tests/resp_2.out rename to src/tests/resp_2.out diff --git a/tests/resp_2_inline.pcap b/src/tests/resp_2_inline.pcap similarity index 100% rename from tests/resp_2_inline.pcap rename to src/tests/resp_2_inline.pcap diff --git a/tests/resp_3.out b/src/tests/resp_3.out similarity index 100% rename from tests/resp_3.out rename to src/tests/resp_3.out diff --git a/tests/resp_3_malicious.pcap b/src/tests/resp_3_malicious.pcap similarity index 100% rename from tests/resp_3_malicious.pcap rename to src/tests/resp_3_malicious.pcap diff --git a/tests/ripv1v2.out b/src/tests/ripv1v2.out similarity index 100% rename from tests/ripv1v2.out rename to src/tests/ripv1v2.out diff --git a/tests/ripv1v2.pcap b/src/tests/ripv1v2.pcap similarity index 100% rename from tests/ripv1v2.pcap rename to src/tests/ripv1v2.pcap diff --git a/tests/ripv2_auth.out b/src/tests/ripv2_auth.out similarity index 100% rename from tests/ripv2_auth.out rename to src/tests/ripv2_auth.out diff --git a/tests/ripv2_auth.pcap b/src/tests/ripv2_auth.pcap similarity index 100% rename from tests/ripv2_auth.pcap rename to src/tests/ripv2_auth.pcap diff --git a/tests/rpl-14-dao.pcap b/src/tests/rpl-14-dao.pcap similarity index 100% rename from tests/rpl-14-dao.pcap rename to src/tests/rpl-14-dao.pcap diff --git a/tests/rpl-14-daovvv.out b/src/tests/rpl-14-daovvv.out similarity index 100% rename from tests/rpl-14-daovvv.out rename to src/tests/rpl-14-daovvv.out diff --git a/tests/rpl-19-pickdag.out b/src/tests/rpl-19-pickdag.out similarity index 100% rename from tests/rpl-19-pickdag.out rename to src/tests/rpl-19-pickdag.out diff --git a/tests/rpl-19-pickdag.pcap b/src/tests/rpl-19-pickdag.pcap similarity index 100% rename from tests/rpl-19-pickdag.pcap rename to src/tests/rpl-19-pickdag.pcap diff --git a/tests/rpl-19-pickdagvvv.out b/src/tests/rpl-19-pickdagvvv.out similarity index 100% rename from tests/rpl-19-pickdagvvv.out rename to src/tests/rpl-19-pickdagvvv.out diff --git a/tests/rpl-26-senddaoack.pcap b/src/tests/rpl-26-senddaoack.pcap similarity index 100% rename from tests/rpl-26-senddaoack.pcap rename to src/tests/rpl-26-senddaoack.pcap diff --git a/tests/rpl-26-senddaovv.out b/src/tests/rpl-26-senddaovv.out similarity index 100% rename from tests/rpl-26-senddaovv.out rename to src/tests/rpl-26-senddaovv.out diff --git a/tests/rpvst-v.out b/src/tests/rpvst-v.out similarity index 100% rename from tests/rpvst-v.out rename to src/tests/rpvst-v.out diff --git a/tests/rpvstp-trunk-native-vid5.pcap b/src/tests/rpvstp-trunk-native-vid5.pcap similarity index 100% rename from tests/rpvstp-trunk-native-vid5.pcap rename to src/tests/rpvstp-trunk-native-vid5.pcap diff --git a/tests/rstp-v.out b/src/tests/rstp-v.out similarity index 100% rename from tests/rstp-v.out rename to src/tests/rstp-v.out diff --git a/tests/rsvp-infinite-loop.pcap b/src/tests/rsvp-infinite-loop.pcap similarity index 100% rename from tests/rsvp-infinite-loop.pcap rename to src/tests/rsvp-infinite-loop.pcap diff --git a/tests/rsvp_infloop-v.out b/src/tests/rsvp_infloop-v.out similarity index 100% rename from tests/rsvp_infloop-v.out rename to src/tests/rsvp_infloop-v.out diff --git a/tests/sflow_multiple_counter_30_pdus-nv.out b/src/tests/sflow_multiple_counter_30_pdus-nv.out similarity index 100% rename from tests/sflow_multiple_counter_30_pdus-nv.out rename to src/tests/sflow_multiple_counter_30_pdus-nv.out diff --git a/tests/sflow_multiple_counter_30_pdus.out b/src/tests/sflow_multiple_counter_30_pdus.out similarity index 100% rename from tests/sflow_multiple_counter_30_pdus.out rename to src/tests/sflow_multiple_counter_30_pdus.out diff --git a/tests/sflow_multiple_counter_30_pdus.pcap b/src/tests/sflow_multiple_counter_30_pdus.pcap similarity index 100% rename from tests/sflow_multiple_counter_30_pdus.pcap rename to src/tests/sflow_multiple_counter_30_pdus.pcap diff --git a/tests/spb.out b/src/tests/spb.out similarity index 100% rename from tests/spb.out rename to src/tests/spb.out diff --git a/tests/spb.pcap b/src/tests/spb.pcap similarity index 100% rename from tests/spb.pcap rename to src/tests/spb.pcap diff --git a/tests/spb_bpduv4.out b/src/tests/spb_bpduv4.out similarity index 100% rename from tests/spb_bpduv4.out rename to src/tests/spb_bpduv4.out diff --git a/tests/spb_bpduv4.pcap b/src/tests/spb_bpduv4.pcap similarity index 100% rename from tests/spb_bpduv4.pcap rename to src/tests/spb_bpduv4.pcap diff --git a/tests/stp-v.out b/src/tests/stp-v.out similarity index 100% rename from tests/stp-v.out rename to src/tests/stp-v.out diff --git a/tests/syslog-v.out b/src/tests/syslog-v.out similarity index 100% rename from tests/syslog-v.out rename to src/tests/syslog-v.out diff --git a/tests/syslog_udp.pcap b/src/tests/syslog_udp.pcap similarity index 100% rename from tests/syslog_udp.pcap rename to src/tests/syslog_udp.pcap diff --git a/tests/tfo-5c1fa7f9ae91.pcap b/src/tests/tfo-5c1fa7f9ae91.pcap similarity index 100% rename from tests/tfo-5c1fa7f9ae91.pcap rename to src/tests/tfo-5c1fa7f9ae91.pcap diff --git a/tests/tfo.out b/src/tests/tfo.out similarity index 100% rename from tests/tfo.out rename to src/tests/tfo.out diff --git a/tests/udld-v.out b/src/tests/udld-v.out similarity index 100% rename from tests/udld-v.out rename to src/tests/udld-v.out diff --git a/tests/unaligned-nfs-1.out b/src/tests/unaligned-nfs-1.out similarity index 100% rename from tests/unaligned-nfs-1.out rename to src/tests/unaligned-nfs-1.out diff --git a/tests/unaligned-nfs-1.pcap b/src/tests/unaligned-nfs-1.pcap similarity index 100% rename from tests/unaligned-nfs-1.pcap rename to src/tests/unaligned-nfs-1.pcap diff --git a/tests/vrrp-v.out b/src/tests/vrrp-v.out similarity index 100% rename from tests/vrrp-v.out rename to src/tests/vrrp-v.out diff --git a/tests/vrrp.out b/src/tests/vrrp.out similarity index 100% rename from tests/vrrp.out rename to src/tests/vrrp.out diff --git a/tests/vrrp.pcap b/src/tests/vrrp.pcap similarity index 100% rename from tests/vrrp.pcap rename to src/tests/vrrp.pcap diff --git a/tests/vxlan.out b/src/tests/vxlan.out similarity index 100% rename from tests/vxlan.out rename to src/tests/vxlan.out diff --git a/tests/vxlan.pcap b/src/tests/vxlan.pcap similarity index 100% rename from tests/vxlan.pcap rename to src/tests/vxlan.pcap diff --git a/tests/zmtp1.out b/src/tests/zmtp1.out similarity index 100% rename from tests/zmtp1.out rename to src/tests/zmtp1.out diff --git a/tests/zmtp1.pcap b/src/tests/zmtp1.pcap similarity index 100% rename from tests/zmtp1.pcap rename to src/tests/zmtp1.pcap diff --git a/timeval-operations.h b/src/timeval-operations.h similarity index 100% rename from timeval-operations.h rename to src/timeval-operations.h diff --git a/udp.h b/src/udp.h similarity index 100% rename from udp.h rename to src/udp.h diff --git a/util-print.c b/src/util-print.c similarity index 100% rename from util-print.c rename to src/util-print.c diff --git a/util.c b/src/util.c similarity index 100% rename from util.c rename to src/util.c diff --git a/vfprintf.c b/src/vfprintf.c similarity index 100% rename from vfprintf.c rename to src/vfprintf.c diff --git a/win32/prj/GNUmakefile b/src/win32/prj/GNUmakefile similarity index 100% rename from win32/prj/GNUmakefile rename to src/win32/prj/GNUmakefile diff --git a/win32/prj/WinDump.dsp b/src/win32/prj/WinDump.dsp similarity index 100% rename from win32/prj/WinDump.dsp rename to src/win32/prj/WinDump.dsp diff --git a/win32/prj/WinDump.dsw b/src/win32/prj/WinDump.dsw similarity index 100% rename from win32/prj/WinDump.dsw rename to src/win32/prj/WinDump.dsw