| From 0eb24aeaec00b4b336f766d147bc6fffd48842c6 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 29 Jun 2021 23:34:08 -0400 |
| Subject: sctp: move 198 addresses from unusable to private scope |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Xin Long <lucien.xin@gmail.com> |
| |
| [ Upstream commit 1d11fa231cabeae09a95cb3e4cf1d9dd34e00f08 ] |
| |
| The doc draft-stewart-tsvwg-sctp-ipv4-00 that restricts 198 addresses |
| was never published. These addresses as private addresses should be |
| allowed to use in SCTP. |
| |
| As Michael Tuexen suggested, this patch is to move 198 addresses from |
| unusable to private scope. |
| |
| Reported-by: Sérgio <surkamp@gmail.com> |
| Signed-off-by: Xin Long <lucien.xin@gmail.com> |
| Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| include/net/sctp/constants.h | 4 +--- |
| net/sctp/protocol.c | 3 ++- |
| 2 files changed, 3 insertions(+), 4 deletions(-) |
| |
| diff --git a/include/net/sctp/constants.h b/include/net/sctp/constants.h |
| index 8890fd66021d..9799c300603a 100644 |
| --- a/include/net/sctp/constants.h |
| +++ b/include/net/sctp/constants.h |
| @@ -344,8 +344,7 @@ typedef enum { |
| } sctp_scope_policy_t; |
| |
| /* Based on IPv4 scoping <draft-stewart-tsvwg-sctp-ipv4-00.txt>, |
| - * SCTP IPv4 unusable addresses: 0.0.0.0/8, 224.0.0.0/4, 198.18.0.0/24, |
| - * 192.88.99.0/24. |
| + * SCTP IPv4 unusable addresses: 0.0.0.0/8, 224.0.0.0/4, 192.88.99.0/24. |
| * Also, RFC 8.4, non-unicast addresses are not considered valid SCTP |
| * addresses. |
| */ |
| @@ -353,7 +352,6 @@ typedef enum { |
| ((htonl(INADDR_BROADCAST) == a) || \ |
| ipv4_is_multicast(a) || \ |
| ipv4_is_zeronet(a) || \ |
| - ipv4_is_test_198(a) || \ |
| ipv4_is_anycast_6to4(a)) |
| |
| /* Flags used for the bind address copy functions. */ |
| diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c |
| index b2c242facf1b..b1932fd125da 100644 |
| --- a/net/sctp/protocol.c |
| +++ b/net/sctp/protocol.c |
| @@ -413,7 +413,8 @@ static sctp_scope_t sctp_v4_scope(union sctp_addr *addr) |
| retval = SCTP_SCOPE_LINK; |
| } else if (ipv4_is_private_10(addr->v4.sin_addr.s_addr) || |
| ipv4_is_private_172(addr->v4.sin_addr.s_addr) || |
| - ipv4_is_private_192(addr->v4.sin_addr.s_addr)) { |
| + ipv4_is_private_192(addr->v4.sin_addr.s_addr) || |
| + ipv4_is_test_198(addr->v4.sin_addr.s_addr)) { |
| retval = SCTP_SCOPE_PRIVATE; |
| } else { |
| retval = SCTP_SCOPE_GLOBAL; |
| -- |
| 2.30.2 |
| |