From cd0aa7de71b4f514879b8fc40c57665bbf93c0cd Mon Sep 17 00:00:00 2001 From: Marco Trinelli Date: Thu, 8 Apr 2021 11:33:02 +0200 Subject: [HICN-696] packethicn: add support for native hicn and fix find wireshark for macOS Allow wireshark to parse native hicn traffic (decode IPv6 traffic as HICN, by default) Fix find_package(wireshark) for macOS, to automatically find wireshark sources in macOS Signed-off-by: Marco Trinelli Change-Id: I95599a894b91685ab1f274b1fa8d75efe6b96178 Signed-off-by: Marco Trinelli --- cmake/Modules/FindWireshark.cmake | 39 --------------------------------------- extras/packethicn/CMakeLists.txt | 12 +++++++++--- extras/packethicn/packet-hicn.c | 3 +++ 3 files changed, 12 insertions(+), 42 deletions(-) delete mode 100644 cmake/Modules/FindWireshark.cmake diff --git a/cmake/Modules/FindWireshark.cmake b/cmake/Modules/FindWireshark.cmake deleted file mode 100644 index aff03eec9..000000000 --- a/cmake/Modules/FindWireshark.cmake +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Locate the Wireshark library. -# -# This file is meant to be copied into projects that want to use Wireshark. -# It will search for WiresharkConfig.cmake, which ships with Wireshark -# and will provide up-to-date buildsystem changes. Thus there should not be -# any need to update FindWiresharkVc.cmake again after you integrated it into -# your project. -# -# This module defines the following variables: -# Wireshark_FOUND -# Wireshark_VERSION_MAJOR -# Wireshark_VERSION_MINOR -# Wireshark_VERSION_PATCH -# Wireshark_VERSION -# Wireshark_VERSION_STRING -# Wireshark_INSTALL_DIR -# Wireshark_PLUGIN_INSTALL_DIR -# Wireshark_LIB_DIR -# Wireshark_LIBRARY -# Wireshark_INCLUDE_DIR -# Wireshark_CMAKE_MODULES_DIR - -find_package(Wireshark ${Wireshark_FIND_VERSION} QUIET NO_MODULE PATHS $ENV{HOME} /opt/Wireshark) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Wireshark CONFIG_MODE) diff --git a/extras/packethicn/CMakeLists.txt b/extras/packethicn/CMakeLists.txt index f8be36eff..cb168ae1f 100644 --- a/extras/packethicn/CMakeLists.txt +++ b/extras/packethicn/CMakeLists.txt @@ -24,7 +24,13 @@ set(CMAKE_MODULE_PATH set(PACKETHICN packethicn) -find_package(Wireshark CONFIG REQUIRED) +if(APPLE) + find_package(Wireshark CONFIG REQUIRED + PATHS /usr/local/opt/wireshark/lib/wireshark/cmake/ /usr/local/Cellar/wireshark/*/lib/wireshark/cmake + ) +else() + find_package(Wireshark CONFIG REQUIRED) +endif() MATH(EXPR Wireshark_PATCH_NEXT_VERSION "${Wireshark_PATCH_VERSION}+1") set(Wireshark_NEXT_VERSION ${Wireshark_MAJOR_VERSION}.${Wireshark_MINOR_VERSION}.${Wireshark_PATCH_NEXT_VERSION}) @@ -32,8 +38,8 @@ set(Wireshark_NEXT_VERSION ${Wireshark_MAJOR_VERSION}.${Wireshark_MINOR_VERSION} if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) find_package(Libhicn REQUIRED) else() - if (DISABLE_SHARED_LIBRARIES) - if (WIN32) + if(DISABLE_SHARED_LIBRARIES) + if(WIN32) set(HICN_LIBRARIES ${LIBHICN_STATIC}) else() set(HICN_LIBRARIES ${LIBHICN_STATIC} log) diff --git a/extras/packethicn/packet-hicn.c b/extras/packethicn/packet-hicn.c index 55ea8747d..c17252bb7 100644 --- a/extras/packethicn/packet-hicn.c +++ b/extras/packethicn/packet-hicn.c @@ -21,6 +21,7 @@ #include "config.h" #include "epan/proto.h" +#include "epan/etypes.h" #include @@ -233,7 +234,9 @@ proto_reg_handoff_hicn(void) static dissector_handle_t hicn_handle; hicn_handle = create_dissector_handle(dissect_hicn, proto_hicn); + dissector_add_uint("udp.port", HICN_PORT, hicn_handle); + dissector_add_uint("ethertype", ETHERTYPE_IPv6, hicn_handle); } void plugin_register(void) -- cgit 1.2.3-korg