From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 170A2A0527 for ; Mon, 9 Nov 2020 19:41:31 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 10CA86883; Mon, 9 Nov 2020 19:41:30 +0100 (CET) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by dpdk.org (Postfix) with ESMTP id 8AD2B697C for ; Mon, 9 Nov 2020 19:41:27 +0100 (CET) Received: by mail-wr1-f54.google.com with SMTP id k2so6483465wrx.2 for ; Mon, 09 Nov 2020 10:41:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=u5+AEW4UbLCz+f3fxrEOHHh5JwyS8Wioi8C9X3U1zBQ=; b=MQosuQ1a4j78ECrYfN7mag7YEui6zXMTDu+U02y7UW4CbRSqZaXyw57g+h6P2hSwNL Oocnts8JGv3zRV4XjfWinOfuPokIOxHjoJYa0c7d7zyv3ZxK3BiHZ2praJ+pAXA/M+PB UsQxtKH3wLxgE/N1fUtrjqjFbwGI1Ghx3puvfxwPmQa4HIAy6A9X+bs6gRcZZMDbLT2U iu9+KEm3gyqCuaj2mDjYVqw3CGlvM5g9hiaH2mej/pZuYblcfDpzqDi36iE08PjyTHK/ BYvN24T9WoHUe8nHvS0gXvlXvOFaaGkGUYd8KVyAGPBWrTxSAtI6XcIFwc3ALI1+KlDt o7XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=u5+AEW4UbLCz+f3fxrEOHHh5JwyS8Wioi8C9X3U1zBQ=; b=IiM+MI07kltClNmVYLOuEQTsHga4ozqZ4wiwS1DhasXjGLmBttDgAiU+xZLDC+FAku Op05PabnB+qbn/GmOzx9wkapqJRRNwyWaaZCzrIbv5GBlFtKeL7Pcy55UCh/ohSuoSCt Q0CdaLSwGGl1aBfWbDRwiVGC4CJW5OV0zD0z82dIDM1h/pqRo+jwzldtvn9iTmeNGYbI txWOUu4tGaCKX0s8s3HdlvACabVEgf2kZSZ5tj21LIgZw6Wsd8lSrC3bn1u8FB0vnOVX 5q8h+UXMIKmKCeCUxnAIPYN6VhTpX59UkBLAOc3QFcKB/plc7ulna69tlTtcwHg+hB4q SmTw== X-Gm-Message-State: AOAM532mAbJOzgFy7S5QvFczY5p8tTSMR97NbNEmy38T32KxaUAIu/Rd s4V/w4pQDNu4EgDBMkGntPY= X-Google-Smtp-Source: ABdhPJyCt7P6l4m63+oIpLRj97HFvF5/zSstocAit2smnpCsF1v6kvPRidk4q5iwLLluvUnisymrdQ== X-Received: by 2002:a05:6000:110c:: with SMTP id z12mr17419433wrw.214.1604947286239; Mon, 09 Nov 2020 10:41:26 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id w186sm295557wmb.26.2020.11.09.10.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Nov 2020 10:41:25 -0800 (PST) From: luca.boccassi@gmail.com To: Ibtisam Tariq Cc: David Marchand , dpdk stable Date: Mon, 9 Nov 2020 18:39:50 +0000 Message-Id: <20201109184111.3463090-2-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201109184111.3463090-1-luca.boccassi@gmail.com> References: <20201028104606.3504127-207-luca.boccassi@gmail.com> <20201109184111.3463090-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/softnic: use POSIX network address conversion' has been queued to stable release 19.11.6 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.6 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/11/20. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/2050cb945b492e13d98c5a6726e9e06534e275c0 Thanks. Luca Boccassi --- >From 2050cb945b492e13d98c5a6726e9e06534e275c0 Mon Sep 17 00:00:00 2001 From: Ibtisam Tariq Date: Mon, 13 Jul 2020 09:57:28 +0000 Subject: [PATCH] net/softnic: use POSIX network address conversion [ upstream commit 4a91344b5e06081f8e2254266bb469489f6633d8 ] inet_pton4 and inet_pton6 was reimplemented. Replace implementation of inet_pton4 and inet_pton6 with libc inet_pton function Bugzilla ID: 365 Fixes: 31ce8d888625 ("net/softnic: add command interface") Reported-by: David Marchand Signed-off-by: Ibtisam Tariq Acked-by: David Marchand --- drivers/net/softnic/parser.c | 188 +---------------------------------- 1 file changed, 4 insertions(+), 184 deletions(-) diff --git a/drivers/net/softnic/parser.c b/drivers/net/softnic/parser.c index dc15ec8aa2..ebcb10268a 100644 --- a/drivers/net/softnic/parser.c +++ b/drivers/net/softnic/parser.c @@ -4,24 +4,6 @@ * All rights reserved. */ -/* For inet_pton4() and inet_pton6() functions: - * - * Copyright (c) 1996 by Internet Software Consortium. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS - * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE - * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR - * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS - * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS - * SOFTWARE. - */ - #include #include #include @@ -33,6 +15,8 @@ #include #include #include +#include +#include #include @@ -364,170 +348,6 @@ softnic_parse_mpls_labels(char *string, uint32_t *labels, uint32_t *n_labels) return 0; } -#define INADDRSZ 4 -#define IN6ADDRSZ 16 - -/* int - * inet_pton4(src, dst) - * like inet_aton() but without all the hexadecimal and shorthand. - * return: - * 1 if `src' is a valid dotted quad, else 0. - * notice: - * does not touch `dst' unless it's returning 1. - * author: - * Paul Vixie, 1996. - */ -static int -inet_pton4(const char *src, unsigned char *dst) -{ - static const char digits[] = "0123456789"; - int saw_digit, octets, ch; - unsigned char tmp[INADDRSZ], *tp; - - saw_digit = 0; - octets = 0; - *(tp = tmp) = 0; - while ((ch = *src++) != '\0') { - const char *pch; - - pch = strchr(digits, ch); - if (pch != NULL) { - unsigned int new = *tp * 10 + (pch - digits); - - if (new > 255) - return 0; - if (!saw_digit) { - if (++octets > 4) - return 0; - saw_digit = 1; - } - *tp = (unsigned char)new; - } else if (ch == '.' && saw_digit) { - if (octets == 4) - return 0; - *++tp = 0; - saw_digit = 0; - } else - return 0; - } - if (octets < 4) - return 0; - - memcpy(dst, tmp, INADDRSZ); - return 1; -} - -/* int - * inet_pton6(src, dst) - * convert presentation level address to network order binary form. - * return: - * 1 if `src' is a valid [RFC1884 2.2] address, else 0. - * notice: - * (1) does not touch `dst' unless it's returning 1. - * (2) :: in a full address is silently ignored. - * credit: - * inspired by Mark Andrews. - * author: - * Paul Vixie, 1996. - */ -static int -inet_pton6(const char *src, unsigned char *dst) -{ - static const char xdigits_l[] = "0123456789abcdef", - xdigits_u[] = "0123456789ABCDEF"; - unsigned char tmp[IN6ADDRSZ], *tp = 0, *endp = 0, *colonp = 0; - const char *xdigits = 0, *curtok = 0; - int ch = 0, saw_xdigit = 0, count_xdigit = 0; - unsigned int val = 0; - unsigned int dbloct_count = 0; - - memset((tp = tmp), '\0', IN6ADDRSZ); - endp = tp + IN6ADDRSZ; - colonp = NULL; - /* Leading :: requires some special handling. */ - if (*src == ':') - if (*++src != ':') - return 0; - curtok = src; - saw_xdigit = count_xdigit = 0; - val = 0; - - while ((ch = *src++) != '\0') { - const char *pch; - - pch = strchr((xdigits = xdigits_l), ch); - if (pch == NULL) - pch = strchr((xdigits = xdigits_u), ch); - if (pch != NULL) { - if (count_xdigit >= 4) - return 0; - val <<= 4; - val |= (pch - xdigits); - if (val > 0xffff) - return 0; - saw_xdigit = 1; - count_xdigit++; - continue; - } - if (ch == ':') { - curtok = src; - if (!saw_xdigit) { - if (colonp) - return 0; - colonp = tp; - continue; - } else if (*src == '\0') { - return 0; - } - if (tp + sizeof(int16_t) > endp) - return 0; - *tp++ = (unsigned char)((val >> 8) & 0xff); - *tp++ = (unsigned char)(val & 0xff); - saw_xdigit = 0; - count_xdigit = 0; - val = 0; - dbloct_count++; - continue; - } - if (ch == '.' && ((tp + INADDRSZ) <= endp) && - inet_pton4(curtok, tp) > 0) { - tp += INADDRSZ; - saw_xdigit = 0; - dbloct_count += 2; - break; /* '\0' was seen by inet_pton4(). */ - } - return 0; - } - if (saw_xdigit) { - if (tp + sizeof(int16_t) > endp) - return 0; - *tp++ = (unsigned char)((val >> 8) & 0xff); - *tp++ = (unsigned char)(val & 0xff); - dbloct_count++; - } - if (colonp != NULL) { - /* if we already have 8 double octets, having a colon means error */ - if (dbloct_count == 8) - return 0; - - /* Since some memmove()'s erroneously fail to handle - * overlapping regions, we'll do the shift by hand. - */ - const int n = tp - colonp; - int i; - - for (i = 1; i <= n; i++) { - endp[-i] = colonp[n - i]; - colonp[n - i] = 0; - } - tp = endp; - } - if (tp != endp) - return 0; - memcpy(dst, tmp, IN6ADDRSZ); - return 1; -} - static struct rte_ether_addr * my_ether_aton(const char *a) { @@ -577,7 +397,7 @@ softnic_parse_ipv4_addr(const char *token, struct in_addr *ipv4) if (strlen(token) >= INET_ADDRSTRLEN) return -EINVAL; - if (inet_pton4(token, (unsigned char *)ipv4) != 1) + if (inet_pton(AF_INET, token, ipv4) != 1) return -EINVAL; return 0; @@ -589,7 +409,7 @@ softnic_parse_ipv6_addr(const char *token, struct in6_addr *ipv6) if (strlen(token) >= INET6_ADDRSTRLEN) return -EINVAL; - if (inet_pton6(token, (unsigned char *)ipv6) != 1) + if (inet_pton(AF_INET6, token, ipv6) != 1) return -EINVAL; return 0; -- 2.27.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-11-09 18:40:11.307855956 +0000 +++ 0002-net-softnic-use-POSIX-network-address-conversion.patch 2020-11-09 18:40:11.063310224 +0000 @@ -1 +1 @@ -From 4a91344b5e06081f8e2254266bb469489f6633d8 Mon Sep 17 00:00:00 2001 +From 2050cb945b492e13d98c5a6726e9e06534e275c0 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,2 @@ + +[ upstream commit 4a91344b5e06081f8e2254266bb469489f6633d8 ]