From 7831ff3fe87ce6c7a0e3688a4be37880da177dd8 Mon Sep 17 00:00:00 2001 From: Alberto Leiva Popper Date: Wed, 25 Jan 2023 15:19:38 -0600 Subject: [PATCH] Protocolary updates for release 4.1.9 --- Makefile.am | 2 +- README.md | 2 +- configure.ac | 2 +- docs/_config.yml | 2 +- docs/_layouts/default.html | 2 +- docs/en/download.md | 5 +++-- docs/en/index.md | 39 ++++++++--------------------------- docs/en/intro-jool.md | 3 ++- src/common/xlat.h | 4 ++-- src/mod/common/db/pool4/db.c | 2 +- src/mod/common/rfc7915/4to6.c | 2 +- src/mod/common/rtrie.c | 2 +- src/mod/common/rtrie.h | 2 +- src/mod/common/xlator.c | 2 +- src/usr/joold/joold.8 | 6 +++--- src/usr/nat64/jool.8 | 6 +++--- src/usr/siit/jool_siit.8 | 6 +++--- test/unit/page/impersonator.c | 17 +++++++++++++++ 18 files changed, 52 insertions(+), 54 deletions(-) diff --git a/Makefile.am b/Makefile.am index 131940cc9..f59d9e9b8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -41,4 +41,4 @@ DIST_SUBDIRS = src/common src/mod src/usr # Needed by libtoolize. (Othewise autoreconf complains.) ACLOCAL_AMFLAGS=-I m4 -EXTRA_DIST=dkms.conf LICENSE README.md +EXTRA_DIST=dkms.conf README.md diff --git a/README.md b/README.md index f71a19820..ee0ace81f 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ You might also want to see [contact info](https://nicmx.github.io/Jool/en/contac ``` Jool - SIIT and NAT64 for Linux -Copyright (C) 2022 NIC Mexico +Copyright (C) 2023 NIC Mexico This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/configure.ac b/configure.ac index f6b58e893..735724b45 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.68]) -AC_INIT([Jool], [4.1.8], [jool@nic.mx]) +AC_INIT([Jool], [4.1.9], [jool@nic.mx]) AC_CONFIG_SRCDIR([src/common/xlat.h]) AM_INIT_AUTOMAKE([subdir-objects]) LT_PREREQ([2.4.6]) diff --git a/docs/_config.yml b/docs/_config.yml index ed17c2048..4c1a2a726 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,7 +1,7 @@ markdown: kramdown baseurl: /Jool repository-url: https://github.com/NICMx/Jool -latest-version: 4.1.8 +latest-version: 4.1.9 rfc-siit: https://tools.ietf.org/html/rfc7915 draft-siit-eam: https://tools.ietf.org/html/rfc7757 diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index afbba03a6..b893da3c3 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -59,7 +59,7 @@ diff --git a/docs/en/download.md b/docs/en/download.md index 63c5e388c..de74faae3 100644 --- a/docs/en/download.md +++ b/docs/en/download.md @@ -27,11 +27,12 @@ Jool 4.2 is a compliant SIIT, Stateful NAT64 and MAP-T. Jool 4.1 is a [compliant SIIT and Stateful NAT64](intro-jool.html#compliance). -Currently, 4.1.8 is the most mature version of Jool. +Currently, 4.1.9 is the most mature version of Jool. | Release Date | Version | .tar.gz | .tar.gz Signature | Git commit | .deb | |--------------|---------|---------|-------------------|------------|------| -| 2022-03-20 | **4.1.8** | [Download]({{ page.url-dl }}/v4.1.8/jool-4.1.8.tar.gz) | [Signature]({{ page.url-dl }}/v4.1.8/jool-4.1.8.tar.gz.asc) | Link | [Kernel modules]({{ page.url-dl }}/v4.1.8/jool-dkms_4.1.8-1_all.deb)
[Userspace tools]({{ page.url-dl }}/v4.1.8/jool-tools_4.1.8-1_amd64.deb) (amd64 only) | +| 2023-01-25 | **4.1.9** | [Download]({{ page.url-dl }}/v4.1.9/jool-4.1.9.tar.gz) | [Signature]({{ page.url-dl }}/v4.1.9/jool-4.1.9.tar.gz.asc) | Link | [Kernel modules]({{ page.url-dl }}/v4.1.9/jool-dkms_4.1.9-1_all.deb)
[Userspace tools]({{ page.url-dl }}/v4.1.9/jool-tools_4.1.9-1_amd64.deb) (amd64 only) | +| 2022-03-20 | 4.1.8 | [Download]({{ page.url-dl }}/v4.1.8/jool-4.1.8.tar.gz) | [Signature]({{ page.url-dl }}/v4.1.8/jool-4.1.8.tar.gz.asc) | Link | [Kernel modules]({{ page.url-dl }}/v4.1.8/jool-dkms_4.1.8-1_all.deb)
[Userspace tools]({{ page.url-dl }}/v4.1.8/jool-tools_4.1.8-1_amd64.deb) (amd64 only) | | 2022-01-27 | 4.1.7 | [Download]({{ page.url-dl }}/v4.1.7/jool-4.1.7.tar.gz) | [Signature]({{ page.url-dl }}/v4.1.7/jool-4.1.7.tar.gz.asc) | Link | [Kernel modules]({{ page.url-dl }}/v4.1.7/jool-dkms_4.1.7-1_all.deb)
[Userspace tools]({{ page.url-dl }}/v4.1.7/jool-tools_4.1.7-1_amd64.deb) (amd64 only) | | 2021-12-10 | 4.1.6 | [Download]({{ page.url-dl }}/v4.1.6/jool-4.1.6.tar.gz) | [Signature]({{ page.url-dl }}/v4.1.6/jool-4.1.6.tar.gz.asc) | Link | [Kernel modules]({{ page.url-dl }}/v4.1.6/jool-dkms_4.1.6-1_all.deb)
[Userspace tools]({{ page.url-dl }}/v4.1.6/jool-tools_4.1.6-1_amd64.deb) (amd64 only) | | 2021-02-19 | 4.1.5 | [Download]({{ page.url-dl }}/v4.1.5/jool-4.1.5.tar.gz) | [Signature]({{ page.url-dl }}/v4.1.5/jool-4.1.5.tar.gz.asc) | Link | [Kernel modules]({{ page.url-dl }}/v4.1.5/jool-dkms_4.1.5-1_all.deb)
[Userspace tools]({{ page.url-dl }}/v4.1.5/jool-tools_4.1.5-1_amd64.deb) (amd64 only) | diff --git a/docs/en/index.md b/docs/en/index.md index 18d1cb975..f49a19ced 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -22,42 +22,21 @@ Jool is an Open Source [SIIT and NAT64](intro-xlat.html) for Linux. > ![Warning](../images/warning.svg) The project's development has slowed down to essential maintenance. Bugfixing and support will remain active, but there will be no new features in the foreseeable future. -- The most mature version is [4.1.8](download.html#41x). +- The most mature version is [4.1.9](download.html#41x). - The second release candidate for version [4.2.0](download.html#42x) is also available now. - **jool.mx is no longer maintained. Please use https://nicmx.github.io/Jool instead.** ------------------- -## Survey - - - -------------------- - ## Latest News -### 2022-03-20 - -Version 4.1.8 has been released. - -- [#366](https://github.com/NICMx/Jool/issues/366), [#375](https://github.com/NICMx/Jool/issues/375): Fix checksums in Slow Path. - This is a fairly critical bug; please upgrade. It affects packets that fulfill the following conditions: - - IPv4-to-IPv6 - - Not ICMP error - - Incoming packet's DF was disabled - - Packet was large, or GRO-aggregated -- Add validation to more verbosely reject IPv6 packets that contain more than one fragment header. -- Add validation to more verbosely reject fragmented (and not reassembled by `nf_defrag_ipv*`) ICMP errors. - (Aside from being fairly illegal, these packets cannot be translated because the "ICMPv6 length" of the [ICMP pseudoheader](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6#Checksum) is unknown.) -- Bugfix: When routing TCP/UDP fragments, the code was including header ports even though nonzero fragment-offset packets lack TCP/UDP headers. - This bug probably doesn't affect you, unless your routing is somehow port-based. - -Also, please consider answering the [survey above](#survey). - -### 2022-05-09 - -jool.mx has been abandoned. It still exists, but I cannot update it anymore. Please use https://nicmx.github.io/Jool instead. +### 2023-01-25 -**Jool 4.1.8 was released over a month ago. Please upgrade; 4.1.7 has an [important bug](https://github.com/NICMx/Jool/issues/366).** +Version 4.1.9 has been released. Bugfixes: -Also, please consider answering the [survey](#survey). +- [#347](https://github.com/NICMx/Jool/issues/347): Allow new Jool binaries to interact with other binaries sharing the same major and minor number versions. +- [#378](https://github.com/NICMx/Jool/issues/378): Fix randomly incomplete `stats display` table print. +- [#379](https://github.com/NICMx/Jool/issues/379), [#380](https://github.com/NICMx/Jool/issues/380), [#395](https://github.com/NICMx/Jool/issues/395): Add support for kernels 5.17, 5.18, 5.19, 6.0, 6.1, RHEL8.6, RHEL8.7, RHEL9.0 and RHEL9.1. Drop support for RHEL8.5. +- [#388](https://github.com/NICMx/Jool/issues/388), [#389](https://github.com/NICMx/Jool/issues/389): Fix sample atomic configuration in the documentation. +- [#391](https://github.com/NICMx/Jool/issues/391), [#392](https://github.com/NICMx/Jool/issues/392): Update OpenWRT installation documentation. +- [#396](https://github.com/NICMx/Jool/issues/396): Allow (and fix during translation, adding mandated padding) ICMP errors containing both ICMP extensions and internal packets measuring less than 128 bytes. diff --git a/docs/en/intro-jool.md b/docs/en/intro-jool.md index 11e7ea49a..bc3745431 100644 --- a/docs/en/intro-jool.md +++ b/docs/en/intro-jool.md @@ -50,7 +50,8 @@ Please [let us know]({{ site.repository-url }}/issues) if you find additional co | Jool version | Supported Linux kernels (mainline) | Supported Linux kernels (RHEL) | |-------------------------------------|--------------------------------------|--------------------------------| -| [main]({{ site.repository-url }}),
[4.1.8](download.html#41x) | 4.9 - 4.20,
5.0 - 5.16 | RHEL 8.5 | +| [main]({{ site.repository-url }}),
[4.1.9](download.html#41x) | 4.9 - 4.20,
5.0 - 5.19,
6.0 - 6.1 | RHEL 8.6 - 8.7,
RHEL 9.0 - 9.1 | +| [4.1.8](download.html#41x) | 4.9 - 4.20,
5.0 - 5.16 | RHEL 8.5 | | [4.1.6](download.html#41x),
[4.1.7](download.html#41x) | 4.4 - 4.20,
5.0 - 5.15 | RHEL 8.5 | | [4.1.5](download.html#41x) | 3.16 - 3.19,
4.0 - 4.20,
5.0 - 5.11 | RHEL 7.6 - RHEL 7.7,
RHEL 8.0 | | [4.1.3](download.html#41x),
[4.1.4](download.html#41x) | 3.16 - 3.19,
4.0 - 4.20,
5.0 - 5.9 | RHEL 7.6 - RHEL 7.7,
RHEL 8.0 | diff --git a/src/common/xlat.h b/src/common/xlat.h index 44f87a4ea..163f42d1c 100644 --- a/src/common/xlat.h +++ b/src/common/xlat.h @@ -9,8 +9,8 @@ */ #define JOOL_VERSION_MAJOR 4 #define JOOL_VERSION_MINOR 1 -#define JOOL_VERSION_REV 8 -#define JOOL_VERSION_DEV 1 +#define JOOL_VERSION_REV 9 +#define JOOL_VERSION_DEV 0 /** See http://stackoverflow.com/questions/195975 */ #define STR_VALUE(arg) #arg diff --git a/src/mod/common/db/pool4/db.c b/src/mod/common/db/pool4/db.c index 809cb8f8e..71e1edf43 100644 --- a/src/mod/common/db/pool4/db.c +++ b/src/mod/common/db/pool4/db.c @@ -1,4 +1,4 @@ -#include "db.h" +#include "mod/common/db/pool4/db.h" #include #include diff --git a/src/mod/common/rfc7915/4to6.c b/src/mod/common/rfc7915/4to6.c index 996af0eaa..33b7ce80c 100644 --- a/src/mod/common/rfc7915/4to6.c +++ b/src/mod/common/rfc7915/4to6.c @@ -1342,7 +1342,7 @@ static __be16 get_dst_port46(struct xlation *state) /* * Computes the L4 checksum from scratch for Slow Path packet @out. */ -static __wsum skb_list_csum(struct sk_buff *out, __u8 proto) +static __sum16 skb_list_csum(struct sk_buff *out, __u8 proto) { struct sk_buff *skb; __wsum csum; diff --git a/src/mod/common/rtrie.c b/src/mod/common/rtrie.c index e71a1663b..833a05878 100644 --- a/src/mod/common/rtrie.c +++ b/src/mod/common/rtrie.c @@ -652,7 +652,7 @@ static void print_node(struct rtrie_node *node, unsigned int level) * * This function is recursive. Do not use in production code. */ -void rtrie_print(char *prefix, struct rtrie *trie) +void rtrie_print(char const *prefix, struct rtrie *trie) { struct rtrie_node *root; diff --git a/src/mod/common/rtrie.h b/src/mod/common/rtrie.h index 5dd607af7..ecda063fd 100644 --- a/src/mod/common/rtrie.h +++ b/src/mod/common/rtrie.h @@ -88,7 +88,7 @@ void rtrie_clean(struct rtrie *trie); int rtrie_find(struct rtrie *trie, struct rtrie_key *key, void *result); bool rtrie_contains(struct rtrie *trie, struct rtrie_key *key); bool rtrie_is_empty(struct rtrie *trie); -void rtrie_print(char *prefix, struct rtrie *trie); +void rtrie_print(char const *prefix, struct rtrie *trie); /* Lock-before-using functions. */ diff --git a/src/mod/common/xlator.c b/src/mod/common/xlator.c index 12c782e67..8cf9e4f61 100644 --- a/src/mod/common/xlator.c +++ b/src/mod/common/xlator.c @@ -642,7 +642,7 @@ static int check_bib(struct bib_entry const *bib, void *_arg) return 0; } -int basic_replace_validations(struct xlator *jool) +static int basic_replace_validations(struct xlator *jool) { struct check_bib_arg arg; diff --git a/src/usr/joold/joold.8 b/src/usr/joold/joold.8 index ae06e8fbf..df34fb1af 100644 --- a/src/usr/joold/joold.8 +++ b/src/usr/joold/joold.8 @@ -1,6 +1,6 @@ .\" Manpage for jool's session synchronization daemon. -.TH joold 8 2022-03-20 v4.1.8 "NAT64 Jool's Session Synchronization Daemon" +.TH joold 8 2023-01-25 v4.1.9 "NAT64 Jool's Session Synchronization Daemon" .SH NAME joold - Userspace Session Synchronization (SS) daemon for NAT64 Jool. @@ -17,7 +17,7 @@ Running the daemons is not enough to have successful session synchronization; SS .SH AVAILABILITY Linux is the only OS in which this program makes sense. .br -Kernels 4.4 and up. +Kernels 4.9 and up. .SH SYNTAX .RI "joold [" FILE "]" @@ -159,7 +159,7 @@ If you want to mail us instead, use jool@nic.mx. To be perfectly honest, the main reason why fixing this isn't in the radar is because joold is giving me the impression that nobody is using it. .SH COPYRIGHT -Copyright 2022 NIC Mexico. +Copyright 2023 NIC Mexico. .br License: GPLv2 (GNU GPL version 2) .br diff --git a/src/usr/nat64/jool.8 b/src/usr/nat64/jool.8 index 034ab62b3..e17a3deb2 100644 --- a/src/usr/nat64/jool.8 +++ b/src/usr/nat64/jool.8 @@ -1,7 +1,7 @@ .\" Manpage for jool's userspace app. .\" Report bugs to jool@nic.mx. -.TH jool 8 2022-03-20 v4.1.8 "NAT64 Jool's Userspace Client" +.TH jool 8 2023-01-25 v4.1.9 "NAT64 Jool's Userspace Client" .SH NAME jool - Interact with NAT64 Jool (the kernel module). @@ -14,7 +14,7 @@ NAT64 Jool is a kernel module you load into a Linux kernel. It implements RFC 61 .SH AVAILABILITY Linux is the only OS in which this program makes sense. .br -Kernels 4.4 and up. +Kernels 4.9 and up. .SH SYNTAX .RI "jool [" "] instance (" @@ -415,7 +415,7 @@ Our issue tracker is https://github.com/NICMx/Jool/issues. If you want to mail us instead, use jool@nic.mx. .SH COPYRIGHT -Copyright 2022 NIC Mexico. +Copyright 2023 NIC Mexico. .br License: GPLv2 (GNU GPL version 2) .br diff --git a/src/usr/siit/jool_siit.8 b/src/usr/siit/jool_siit.8 index 9b272b664..ce69109e8 100644 --- a/src/usr/siit/jool_siit.8 +++ b/src/usr/siit/jool_siit.8 @@ -1,7 +1,7 @@ .\" Manpage for jool's userspace app. .\" Report bugs to jool@nic.mx. -.TH jool_siit 8 2022-03-20 v4.1.8 "SIIT Jool's Userspace Client" +.TH jool_siit 8 2023-01-25 v4.1.9 "SIIT Jool's Userspace Client" .SH NAME jool_siit - Interact with SIIT Jool (the kernel module). @@ -14,7 +14,7 @@ SIIT Jool is a kernel module you load into a Linux kernel. It implements RFC 791 .SH AVAILABILITY Linux is the only OS in which this program makes sense. .br -Kernels 4.4 and up. +Kernels 4.9 and up. .SH SYNTAX .RI "jool_siit [" "] instance (" @@ -321,7 +321,7 @@ Our issue tracker is https://github.com/NICMx/Jool/issues. If you want to mail us instead, use jool@nic.mx. .SH COPYRIGHT -Copyright 2022 NIC Mexico. +Copyright 2023 NIC Mexico. .br License: GPLv2 (GNU GPL version 2) .br diff --git a/test/unit/page/impersonator.c b/test/unit/page/impersonator.c index 2651029c1..9918f1ab8 100644 --- a/test/unit/page/impersonator.c +++ b/test/unit/page/impersonator.c @@ -1,7 +1,24 @@ #include "mod/common/dev.h" +#include "mod/common/db/bib/db.h" +#include "mod/common/db/pool4/db.h" +#include "framework/unit_test.h" int foreach_ifa(struct net *ns, int (*cb)(struct in_ifaddr *, void const *), void const *args) { return 0; } + +int bib_foreach(struct bib *db, l4_protocol proto, + bib_foreach_entry_cb cb, void *cb_arg, + const struct ipv4_transport_addr *offset) +{ + return broken_unit_call("bib_foreach"); +} + +bool pool4db_contains(struct pool4 *pool, struct net *ns, l4_protocol proto, + struct ipv4_transport_addr const *addr) +{ + broken_unit_call("pool4db_contains"); + return false; +}