genode/tool
Martin Stein 619474bc90 nic_router: drop fragmented IPv4
The NIC router used to ignore the IPv4 header fields "More fragments" and
"Fragment offset" completely. Therefore higher-level protocols of fragmented
IPv4 were interpreted wrong because each fragment was considered a self-
standing packet, expecting, for instance UDP/TCP headers somewhere inside of
the UDP/TCP data field. Normally, such packets were dropped as soon as the
UDP/TCP checksum check failed because of the misinterpretation. However,
it was also possible for fragmented IPv4 to pass the router although normally
only partially.

IPv4 fragmentation support in the router would introduce some potential
security risks and is presumably not an easy endeavor. So, for now, we settled
on not supporting IPv4 fragmentation. With this commit, the router simply drops
all fragmented IPv4. This is reflected to the log for each fragment as "drop
packet (fragmented IPv4 not supported)" when 'verbose_packet_drop="yes"' is
configured.

The new test 'run/nic_router_ipv4_fragm' is an automated test for this
behavior. The test is added to the autopilot list.

Ref #4236
2021-08-18 15:06:12 +02:00
..
boot Update to bender with optional microcode and HWP 2020-11-23 12:03:00 +01:00
builddir builddir/run_x86: add note regarding missing -no-kvm switch 2021-06-28 11:38:20 +02:00
dde_linux tool: refine help text of list_dependencies 2021-07-28 11:25:21 +02:00
depot tool/depot: fix forwarding of CCACHE 2021-07-28 11:24:56 +02:00
dts tool/dts: for extracting content from dts files 2021-05-28 14:15:28 +02:00
ports tool: use local LC_ALL=C instead of LC_COLLATE=C 2021-05-28 14:15:26 +02:00
run run/load/fastboot: support 64-bit ARM 2021-07-28 11:27:04 +02:00
sdk Genode SDK 2018-11-29 11:46:02 +01:00
seccomp base-linux: 64-bit ARM support 2021-05-10 11:17:20 +02:00
xkb2ifcfg tool/xkb2ifcfg: update README to event_filter 2021-03-24 11:09:08 +01:00
abi_symbols tool: use local LC_ALL=C instead of LC_COLLATE=C 2021-05-28 14:15:26 +02:00
autopilot autopilot: align output for wide run-script names 2019-08-13 12:02:27 +02:00
autopilot.list nic_router: drop fragmented IPv4 2021-08-18 15:06:12 +02:00
beautify Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
cbe_autopilot gems: import Genode-specific code of the CBE 2020-11-27 09:19:08 +01:00
check_abi tool: use local LC_ALL=C instead of LC_COLLATE=C 2021-05-28 14:15:26 +02:00
create_builddir Add ccache support to build system 2021-02-23 12:02:41 +01:00
create_iso tool/create_iso: Make ISO creation tool configurable 2017-05-02 15:28:53 +02:00
create_sdk tool_chain: versioned install location 2019-05-29 10:20:52 +02:00
create_uboot tool_chain: versioned install location 2019-05-29 10:20:52 +02:00
cxx_to_html Tool cxx_to_html to convert C++ source to HTML 2012-01-08 14:09:47 +01:00
download_hashver Hash verification tool 2013-06-10 10:44:09 +02:00
download_sigver GPG signature verification tool 2013-06-10 10:44:09 +02:00
fix_include_ifndef tool/fix_include_ifndef: consider license header 2014-01-27 18:54:05 +01:00
internal_abi.list tool/abi_symbols: omit known internal symbols 2019-01-30 13:35:29 +01:00
link.h tool/link.h: remove outdated comment 2018-05-30 13:36:29 +02:00
parse_cxx tool/parse_cxx: consider __attribute__((...)) 2020-05-27 11:56:46 +02:00
README Tool for checking consistency between lib and ABI 2018-01-17 12:14:42 +01:00
rump_cgdconf tool: wrapper script for rumpkernel tools 2014-05-27 11:14:45 +02:00
tool_chain tool_chain: add ENABLE_FEATURE support 2021-06-25 11:55:41 +02:00
tool_chain_qt5 qt5: build Qt libraries and applications with qmake 2020-07-03 13:48:55 +02:00

This directory contains tools for managing and using the source code
of Genode.

:'create_builddir'

  The 'create_builddir' tool provides a convenient way to create build
  directories for different platforms. Its usage information is printed when
  starting the tool without arguments.

:'builddir/':

  This directory contains a Makefile template and configuration snippets used
  by the 'create_builddir' tool.

:'tool_chain':

  This tool downloads, builds, and installs the tool chain needed to build the
  Genode OS Framework. For getting usage information, start the tool without
  arguments.

:'create_iso':

  This simple tool helps to build bootable ISO images from your build of
  Genode. For getting usage information, start the tool without arguments.

:'create_grub2':

  This tool prepares a partitioned disk image with GRUB2 as boot
  loader.

:'grub2-head.img':

  This file is the head part of a partioned disk image including an
  installation of GRUB2 as boot loader. GRUB2 is available from
  http://www.gnu.org/software/grub/ and in major Linux distributions.
  Steps to reproduce the image creation can be found in
  'create_grub2'.

:'beautify':

  Beautify is a coding-style checking tool that analyzes source code for its
  adherence to Genode's coding style as described in 'doc/coding_style.txt'.
  Whenever possible, the tool tries to fix the issues and outputs a corrected
  file.  Some corrections, however, require human interaction.  In this case,
  the tool stops the analysis with an error.

:'parse_cxx':

  This tool is a C++ parser used as front-end for Beautify.

:'cxx_to_html':

  This tool converts a C++ source file to a HTML view to be used for the API
  documentation at the genode.org website. It relies on 'parse_cxx' to do the
  actual C++ parsing.

:'fix_include_ifndef':

  This tool helps with assigning consistent include guards to header files.

:'boot':

  This directory contains boot-loader files needed to create boot images.

:'autopilot':

  Autopilot is a tool for the automatic execution of run scripts among multiple
  base platforms.

:'abi_symbols':

  The utility assists with the initial creation of a ABI-symbols file, taking
  a shared object as a starting point. For more information, refer to the
  header of the 'abi_symbols' script.

:'check_abi':

  The 'check_abi' helper is used by the build system to detect violations of
  an ABI by a shared library. Most importantly, it reports incompatibilities of
  symbol sizes, which require an adaptation of the ABI. For more information,
  refer to the header of the 'check_abi' script.