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 31A80A0527 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 229866CA9; Mon, 9 Nov 2020 19:41:30 +0100 (CET) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by dpdk.org (Postfix) with ESMTP id E71136A1C for ; Mon, 9 Nov 2020 19:41:28 +0100 (CET) Received: by mail-wm1-f41.google.com with SMTP id a65so443437wme.1 for ; Mon, 09 Nov 2020 10:41:28 -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=PQlsqxinNoJh6L2BEbbZ4v0a7SfEDlvVut7wAQNh6ZA=; b=dXtGl1hO/cZeXxI2v4xlrey+/gw6UeraMhmidvIYR3MibhKlaxD3GdfbVOpBYlM3Hy BG6MA1qTPkVAW/zWXQi+cFTeSczZcov+jXGxYy4QlEj8o5kKMOyj6zIhc6ZaTiVypmLY 47KNu8ryLLYcA+j/b0Wc9cUDBlazza6kZ4HwNT0rSfofJHSzMzpEKvJqR57MMEJCQ3M5 iwNIcu9aJcW4dgsZs/eFkDioifFdN9jspDLZUuFWHwn//9ap59gXwX3grSQh81UONutC ns/RwHuxy9fEyZzJooDiIBbuSuwD9CjGf1JO/Wdo+2uW51/apJronvwKsQ++wXQkO3YW T6KQ== 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=PQlsqxinNoJh6L2BEbbZ4v0a7SfEDlvVut7wAQNh6ZA=; b=ASNoBPVUdnLJseJKoygmEtTpThZTQrVvuSsapuM0EPEcRqSDqxNnfYJ05V86ID2hDO cW9rvh2c+POAW2mpbn9L9YHMYIZC8XgLzuNBVBAxBBcLakqL9BGDgLyHVTn47B5vQRVN 77Ot3MRnabFbpgZALLB9G93xI2r/6CPg84UjGy5ofoWt/XnhZJkrDUSr/x534ZE+3Hnl nZa70OAQe5PImYyRMWanaNO+7U+6gzYM3XIvltVX8DTMnH1pNfzWK00H7i+2ALNHj56H 5yN4ZX/GwndSOF6t1QDEYEfsL1NOUdppdUkKix2iXTWQyLNm7SQWk+pMLpcrU+YLETuZ 4TEg== X-Gm-Message-State: AOAM533zjjXaxFTLrk/2UFlUlxUFqG0mszAbF4ydyW4p9AS0muzmJwM1 w3CpedD0xh+Dm+8BWuooO+g= X-Google-Smtp-Source: ABdhPJx2T2f0dBDSuXiYb5YmZLua8jdIxAJtyo6w1tZwwq+QnzYpa6J3HNe0jdEuHc3rN/ctybreQA== X-Received: by 2002:a1c:5a06:: with SMTP id o6mr518054wmb.181.1604947287697; Mon, 09 Nov 2020 10:41:27 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id 15sm337864wmg.1.2020.11.09.10.41.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Nov 2020 10:41:26 -0800 (PST) From: luca.boccassi@gmail.com To: Ibtisam Tariq Cc: David Marchand , dpdk stable Date: Mon, 9 Nov 2020 18:39:51 +0000 Message-Id: <20201109184111.3463090-3-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 'examples/ip_pipeline: 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/da520256bbf31136105601746e5a9ba858572ab8 Thanks. Luca Boccassi --- >From da520256bbf31136105601746e5a9ba858572ab8 Mon Sep 17 00:00:00 2001 From: Ibtisam Tariq Date: Mon, 13 Jul 2020 09:57:29 +0000 Subject: [PATCH] examples/ip_pipeline: use POSIX network address conversion [ upstream commit 03ef8c1b6b0db7cb666a4656c0c493330e217fb3 ] inet_pton4 and inet_pton6 was reimplemented. Replacing implementation of inet_pton4 and inet_pton6 with libc inet_pton function Bugzilla ID: 365 Fixes: ed7a0490f7e2 ("examples/ip_pipeline: add string parsing helpers") Reported-by: David Marchand Signed-off-by: Ibtisam Tariq Acked-by: David Marchand --- examples/ip_pipeline/parser.c | 190 +--------------------------------- 1 file changed, 4 insertions(+), 186 deletions(-) diff --git a/examples/ip_pipeline/parser.c b/examples/ip_pipeline/parser.c index 3fffeb5867..f043d6bf4f 100644 --- a/examples/ip_pipeline/parser.c +++ b/examples/ip_pipeline/parser.c @@ -4,25 +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 @@ -34,6 +15,8 @@ #include #include #include +#include +#include #include #include @@ -348,171 +331,6 @@ 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 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) { @@ -562,7 +380,7 @@ 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; @@ -574,7 +392,7 @@ 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.342601923 +0000 +++ 0003-examples-ip_pipeline-use-POSIX-network-address-conve.patch 2020-11-09 18:40:11.063310224 +0000 @@ -1 +1 @@ -From 03ef8c1b6b0db7cb666a4656c0c493330e217fb3 Mon Sep 17 00:00:00 2001 +From da520256bbf31136105601746e5a9ba858572ab8 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 03ef8c1b6b0db7cb666a4656c0c493330e217fb3 ] + @@ -20 +22 @@ -index fb0769fe37..dfd71a71d3 100644 +index 3fffeb5867..f043d6bf4f 100644