From f72849911653de9239f3b32359f38b0c5ed90ac6 Mon Sep 17 00:00:00 2001 From: Marco Trinelli Date: Tue, 6 Apr 2021 11:11:02 +0200 Subject: [HICN-692] Fix deb package installation of packethicn Signed-off-by: Marco Trinelli Change-Id: I3c916807904d78c17a3444808f904b9c0cf0a4f5 --- docs/source/index.rst | 1 + docs/source/packethicn.md | 50 ++++++++++++++++++++----- extras/packethicn/CMakeLists.txt | 34 +++++++++++------ extras/packethicn/cmake/Modules/Packaging.cmake | 8 ++-- extras/packethicn/packet-hicn.c | 2 +- 5 files changed, 69 insertions(+), 26 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 99ea39afa..6d48ae646 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -22,6 +22,7 @@ on VPP and a client stack is provided to support any mobile and desktop operatin control telemetry utils + packethicn apps diff --git a/docs/source/packethicn.md b/docs/source/packethicn.md index 3d3424d71..cf4976837 100644 --- a/docs/source/packethicn.md +++ b/docs/source/packethicn.md @@ -9,11 +9,21 @@ The `packethicn` plugin adds support to Wireshark to parse and dissect HICN traf 2. As a standalone component (see [Standalone build](#Standalone-build)) -The second one is preferred if `HICN` is already installed in the system. +The second one is preferred if HICN is already installed in the system. -# Build with HICN +# Supported platforms +`packethicn` has been tested in -## Dependencies +- Ubuntu 18.04 +- Ubuntu 20.04 +- macOS 11.2 + +Other platforms and architectures may work. + +# Installation +## Build with HICN + +### Dependencies ```bash $ sudo add-apt-repository ppa:wireshark-dev/stable @@ -22,7 +32,7 @@ $ sudo apt install -y build-essential cmake wireshark wireshark-dev libgcrypt-de ``` -## Build and install +### Build and install From the root HICN dir add the `-DBUILD_WSPLUGIN` flag to cmake. @@ -39,10 +49,10 @@ $ sudo make install ``` -# Standalone build -## Linux (Ubuntu) +## Standalone build +### Linux (Ubuntu) -### Install dependencies +#### Install dependencies ```bash $ sudo add-apt-repository ppa:wireshark-dev/stable @@ -51,7 +61,7 @@ $ curl -s https://packagecloud.io/install/repositories/fdio/release/script.deb.s $ sudo apt install -y build-essential cmake libhicn-dev wireshark wireshark-dev libgcrypt-dev libgnutls28-dev ``` -### Compile and install HICN plugin +#### Compile and install HICN plugin ```bash $ cd packethicn @@ -65,7 +75,7 @@ $ sudo make install ``` -## macOS +### macOS If installing wireshark via brew use the `./install_macos.sh` script as shown below: ```bash @@ -94,4 +104,24 @@ $ cmake .. $ make $ sudo make install -``` \ No newline at end of file +``` + +# Usage + +## Filters + +| Filter | Description | Example | +| --- | --- | --- | +| `hicn` | HICN traffic only | *hicn* | +| `hicn.l3.src` | Source address / Name Prefix (of data) | *hicn.l3.src == b001::a8f:ae2a:bd5b:0:0* | +| `hicn.l3.dst` | Destination address / Name Prefix (of interest) | *hicn.l3.dst == b001::a8f:ae2a:bd5b:1111:0* | +| `hicn.l4.namesuffix ` | Name Suffix | *hicn.l4.namesuffix == 0x21* | +| `hicn.l4.pathlabel ` | Path Label | *hicn.l4.pathlabel == 0xbb* | +| `hicn.l4.timescale ` | Timescale | *hicn.l4.timescale == 4* | +| `hicn.l4.flags ` | Flags | *hicn.l4.flags == 0x42* | +| `hicn.l4.flags.id ` | ID Flag | *hicn.l4.flags.id == 1* | +| `hicn.l4.flags.man ` | MAN Flag | *hicn.l4.flags.man == 0* | +| `hicn.l4.flags.sig ` | SIG Flag | *hicn.l4.flags.sig == 0* | +| `hicn.l4.ldr ` | Loss Detection and Recovery | *hicn.l4.ldr > 0* | +| `hicn.l4.csum ` | Checksum | *hicn.l4.csum > 0* | +| `hicn.l4.lifetime ` | Lifetime | *hicn.l4.lifetime == 1000* | diff --git a/extras/packethicn/CMakeLists.txt b/extras/packethicn/CMakeLists.txt index cf5f7c26f..f8be36eff 100644 --- a/extras/packethicn/CMakeLists.txt +++ b/extras/packethicn/CMakeLists.txt @@ -18,35 +18,35 @@ project(packethicn VERSION 0.0.1 DESCRIPTION "hICN protocol plugin" LANGUAGES C) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules" + ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules ) -include(BuildMacros) -include(Packaging) - set(PACKETHICN packethicn) find_package(Wireshark CONFIG REQUIRED) +MATH(EXPR Wireshark_PATCH_NEXT_VERSION "${Wireshark_PATCH_VERSION}+1") +set(Wireshark_NEXT_VERSION ${Wireshark_MAJOR_VERSION}.${Wireshark_MINOR_VERSION}.${Wireshark_PATCH_NEXT_VERSION}) + if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) find_package(Libhicn REQUIRED) else() if (DISABLE_SHARED_LIBRARIES) - if (WIN32) + if (WIN32) set(HICN_LIBRARIES ${LIBHICN_STATIC}) - else () + else() set(HICN_LIBRARIES ${LIBHICN_STATIC} log) - endif () + endif() list(APPEND DEPENDENCIES ${LIBHICN_STATIC} ) - else () + else() set(HICN_LIBRARIES ${LIBHICN_SHARED}) list(APPEND DEPENDENCIES ${LIBHICN_SHARED} ) - endif () + endif() endif() if(NOT Wireshark_PLUGINS_ENABLED) @@ -73,6 +73,13 @@ list(APPEND LIBRARIES epan ) +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + set(LIBHICN hicn CACHE INTERNAL "" FORCE) +endif() + +include(Packaging) +include(BuildMacros) + build_library(${PACKETHICN} MODULE SOURCES ${SOURCE_FILES} @@ -83,4 +90,9 @@ build_library(${PACKETHICN} INSTALL_FULL_PATH_DIR ${Wireshark_PLUGIN_INSTALL_DIR}/epan DEFINITIONS ${COMPILER_DEFINITIONS} EMPTY_PREFIX true -) \ No newline at end of file +) + +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + include(Packager) + make_packages() +endif() \ No newline at end of file diff --git a/extras/packethicn/cmake/Modules/Packaging.cmake b/extras/packethicn/cmake/Modules/Packaging.cmake index 4cd81f35e..5bea05c3c 100644 --- a/extras/packethicn/cmake/Modules/Packaging.cmake +++ b/extras/packethicn/cmake/Modules/Packaging.cmake @@ -21,11 +21,11 @@ set(${PACKETHICN}_DESCRIPTION ) set(${PACKETHICN}_DEB_DEPENDENCIES - "lib${LIBHICN} (>= stable_version), wireshark (>= 3.0), wireshark-dev (>= 3.0), libgnutls28-dev (>= 3.0), libgcrypt (>= 1.0)" - CACHE STRING "Dependencies for deb package." + "lib${LIBHICN} (>= stable_version), wireshark (>= ${Wireshark_VERSION}), wireshark (<< ${Wireshark_NEXT_VERSION})" + CACHE STRING "Dependencies for deb/rpm package." ) set(${PACKETHICN}_RPM_DEPENDENCIES - "lib${LIBHICN} >= stable_version, wireshark-devel >= 3.0" - CACHE STRING "Dependencies for rpm package." + "lib${LIBHICN} >= stable_version, wireshark >= ${Wireshark_VERSION}, wireshark < ${Wireshark_NEXT_VERSION}" + CACHE STRING "Dependencies for deb/rpm package." ) \ No newline at end of file diff --git a/extras/packethicn/packet-hicn.c b/extras/packethicn/packet-hicn.c index 45ca7a5c4..55ea8747d 100644 --- a/extras/packethicn/packet-hicn.c +++ b/extras/packethicn/packet-hicn.c @@ -200,7 +200,7 @@ proto_register_hicn(void) { &hf_hicn_tcp_pathlabel, { "Path Label", "hicn.l4.pathlabel", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL }}, { &hf_hicn_tcp_hdrlen_timescale, { "Header length and Timescale", "hicn.l4.hdrlen_ts", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }}, { &hf_hicn_tcp_hdrlen, { "Header length", "hicn.l4.hdrlen", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_hicn_tcp_timescale, { "Timescale", "hich.l4.ts", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, + { &hf_hicn_tcp_timescale, { "Timescale", "hicn.l4.timescale", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, { &hf_hicn_tcp_flags, { "Flags", "hicn.l4.flags", FT_UINT8, BASE_HEX, NULL, FLAGS_MASK, NULL, HFILL }}, { &hf_hicn_tcp_flags_cwr, { "_CWR", "hicn.l4.flags.cwr", FT_BOOLEAN, FLAGS_BITS_LEN, TFS(&tfs_set_notset), TH_CWR, NULL, HFILL }}, { &hf_hicn_tcp_flags_id, { "ID", "hicn.l4.flags.id", FT_BOOLEAN, FLAGS_BITS_LEN, TFS(&tfs_set_notset),TH_ID, NULL, HFILL }}, -- cgit 1.2.3-korg