From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 87BDDA00C2 for ; Thu, 3 Nov 2022 10:31:55 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8116840694; Thu, 3 Nov 2022 10:31:55 +0100 (CET) Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mails.dpdk.org (Postfix) with ESMTP id B5F5640693 for ; Thu, 3 Nov 2022 10:31:53 +0100 (CET) Received: by mail-wr1-f45.google.com with SMTP id a14so1728671wru.5 for ; Thu, 03 Nov 2022 02:31:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8cwKZbnQYD307rPQoHQkGgJKTYUD7agRePC9btMgQL0=; b=TADa6OOFMymtp50muG7BBG9F76o7GtByT+aA/fqHIzFSKAZvui7EL6g9T2iv3NaYkr N2yTuYMDoMZ2YpEV9QWliNOftGkyk4wlcx67655CNiilz7Vwv/3Zg0t6ScnzHpWP1+vi 18cawdIqVw9L0sLE8fveCDLEcpskSdrVkwbtKTDFlK9TC3TUcJ6uzCcPVPlhtX4dgIZk 1hfnKA/S6Ypjq7E9CgREmpy3KNhtztGqUUK7Jb+6u8HSyp2O8WeABQ8JpRwmmSBfYRNk dMezNkNepiih6MoSpiNjkGiFbUc6VhKQ0rYkkqYdFNw0ZUDR7l3b3T1MbSZ8RSW3deU5 xAxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8cwKZbnQYD307rPQoHQkGgJKTYUD7agRePC9btMgQL0=; b=IfWwlTvyljGMT1R1sNvms1TlOLhddVND5fGJ1rKrLrz1LraqbQ1PY94nE3ZBEQ1Tgb 4ZNjHfAbLBwxHO74cHlA6ox6Ods1BqJs/hAoMxCuVgzFtpgPUFBpj321dKJygKr/yPiN 71o5pwQQxmoyBN7DGo301mKK0f/ePdyRTcKd1UQ63HBC2CamkKIG2NgxhdCzqmhn0OGL 2RsZQQ4lCYNtsTTGxK6QOYmxD+UYFedO71NSxgIYYZw8PMs8/bS46CMBC9aePIf6WxK0 3fax+59nCoC5QRI2HIOCiybQ6nnLOkchU+UL/IAWjqyR2tGI3ra9T6ub0eeNJu3mSQUK FbQg== X-Gm-Message-State: ACrzQf212RXYGA9ThdtZO+d82lujkoUTx49fTQ2ZOf7IVgjQ6Zw5s5yG ThfOQMywb1eDukfFGAZbEtQ6F5iwrb6f36l8 X-Google-Smtp-Source: AMsMyM4Hyy5nx8QRHw9pUosq0RnGhqIxT1S4RIu7Z36KzjTFu4nR3ZfgeXbOa714UWjp3S6LfNQ/yA== X-Received: by 2002:a5d:584d:0:b0:236:ba47:9fb4 with SMTP id i13-20020a5d584d000000b00236ba479fb4mr61678wrf.353.1667467913424; Thu, 03 Nov 2022 02:31:53 -0700 (PDT) Received: from localhost ([2a01:4b00:d307:1000:f1d3:eb5e:11f4:a7d9]) by smtp.gmail.com with ESMTPSA id v7-20020a05600c444700b003c70191f267sm5303614wmn.39.2022.11.03.02.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Nov 2022 02:31:52 -0700 (PDT) From: luca.boccassi@gmail.com To: Alex Kiselev Cc: Stephen Hemminger , dpdk stable Subject: patch 'net/tap: fix overflow of network interface index' has been queued to stable release 20.11.7 Date: Thu, 3 Nov 2022 09:27:27 +0000 Message-Id: <20221103092758.1099402-69-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221103092758.1099402-1-luca.boccassi@gmail.com> References: <20221103092758.1099402-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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 Hi, FYI, your patch has been queued to stable release 20.11.7 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/05/22. 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/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/f221336cf997d828a3d7d3e68f23694b18a516f2 Thanks. Luca Boccassi --- >From f221336cf997d828a3d7d3e68f23694b18a516f2 Mon Sep 17 00:00:00 2001 From: Alex Kiselev Date: Thu, 21 Jul 2022 11:13:01 +0000 Subject: [PATCH] net/tap: fix overflow of network interface index [ upstream commit 8772bbfa717fdf3251b32ea48bdd21ddd6836dde ] On Linux and most other systems, network interface index is a 32-bit integer. Indexes overflowing the 16-bit integer are frequently seen when used inside a Docker container. Fixes: 7c25284e30c2 ("net/tap: add netlink back-end for flow API") Fixes: 2bc06869cd94 ("net/tap: add remote netdevice traffic capture") Signed-off-by: Alex Kiselev Acked-by: Stephen Hemminger --- drivers/net/tap/tap_flow.c | 2 +- drivers/net/tap/tap_tcmsgs.c | 18 +++++++++--------- drivers/net/tap/tap_tcmsgs.h | 16 ++++++++-------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/net/tap/tap_flow.c b/drivers/net/tap/tap_flow.c index 6e51b1c2a3..3141598742 100644 --- a/drivers/net/tap/tap_flow.c +++ b/drivers/net/tap/tap_flow.c @@ -1684,7 +1684,7 @@ int tap_flow_implicit_create(struct pmd_internals *pmd, struct rte_flow_item *items = implicit_rte_flows[idx].items; struct rte_flow_attr *attr = &implicit_rte_flows[idx].attr; struct rte_flow_item_eth eth_local = { .type = 0 }; - uint16_t if_index = pmd->remote_if_index; + unsigned int if_index = pmd->remote_if_index; struct rte_flow *remote_flow = NULL; struct nlmsg *msg = NULL; int err = 0; diff --git a/drivers/net/tap/tap_tcmsgs.c b/drivers/net/tap/tap_tcmsgs.c index b478b5951e..a3aae3c814 100644 --- a/drivers/net/tap/tap_tcmsgs.c +++ b/drivers/net/tap/tap_tcmsgs.c @@ -19,7 +19,7 @@ struct qdisc { struct list_args { int nlsk_fd; - uint16_t ifindex; + unsigned int ifindex; void *custom_arg; }; @@ -42,7 +42,7 @@ struct qdisc_custom_arg { * Overrides the default netlink flags for this msg with those specified. */ void -tc_init_msg(struct nlmsg *msg, uint16_t ifindex, uint16_t type, uint16_t flags) +tc_init_msg(struct nlmsg *msg, unsigned int ifindex, uint16_t type, uint16_t flags) { struct nlmsghdr *n = &msg->nh; @@ -70,7 +70,7 @@ tc_init_msg(struct nlmsg *msg, uint16_t ifindex, uint16_t type, uint16_t flags) * 0 on success, -1 otherwise with errno set. */ static int -qdisc_del(int nlsk_fd, uint16_t ifindex, struct qdisc *qinfo) +qdisc_del(int nlsk_fd, unsigned int ifindex, struct qdisc *qinfo) { struct nlmsg msg; int fd = 0; @@ -114,7 +114,7 @@ error: * 0 on success, -1 otherwise with errno set. */ int -qdisc_add_multiq(int nlsk_fd, uint16_t ifindex) +qdisc_add_multiq(int nlsk_fd, unsigned int ifindex) { struct tc_multiq_qopt opt = {0}; struct nlmsg msg; @@ -144,7 +144,7 @@ qdisc_add_multiq(int nlsk_fd, uint16_t ifindex) * 0 on success, -1 otherwise with errno set. */ int -qdisc_add_ingress(int nlsk_fd, uint16_t ifindex) +qdisc_add_ingress(int nlsk_fd, unsigned int ifindex) { struct nlmsg msg; @@ -208,7 +208,7 @@ qdisc_del_cb(struct nlmsghdr *nh, void *arg) * 0 on success, -1 otherwise with errno set. */ static int -qdisc_iterate(int nlsk_fd, uint16_t ifindex, +qdisc_iterate(int nlsk_fd, unsigned int ifindex, int (*callback)(struct nlmsghdr *, void *), void *arg) { struct nlmsg msg; @@ -238,7 +238,7 @@ qdisc_iterate(int nlsk_fd, uint16_t ifindex, * 0 on success, -1 otherwise with errno set. */ int -qdisc_flush(int nlsk_fd, uint16_t ifindex) +qdisc_flush(int nlsk_fd, unsigned int ifindex) { return qdisc_iterate(nlsk_fd, ifindex, qdisc_del_cb, NULL); } @@ -256,7 +256,7 @@ qdisc_flush(int nlsk_fd, uint16_t ifindex) * Return -1 otherwise. */ int -qdisc_create_multiq(int nlsk_fd, uint16_t ifindex) +qdisc_create_multiq(int nlsk_fd, unsigned int ifindex) { int err = 0; @@ -282,7 +282,7 @@ qdisc_create_multiq(int nlsk_fd, uint16_t ifindex) * Return -1 otherwise. */ int -qdisc_create_ingress(int nlsk_fd, uint16_t ifindex) +qdisc_create_ingress(int nlsk_fd, unsigned int ifindex) { int err = 0; diff --git a/drivers/net/tap/tap_tcmsgs.h b/drivers/net/tap/tap_tcmsgs.h index 8cedea8462..a64cb29d6f 100644 --- a/drivers/net/tap/tap_tcmsgs.h +++ b/drivers/net/tap/tap_tcmsgs.h @@ -24,14 +24,14 @@ #define MULTIQ_MAJOR_HANDLE (1 << 16) -void tc_init_msg(struct nlmsg *msg, uint16_t ifindex, uint16_t type, +void tc_init_msg(struct nlmsg *msg, unsigned int ifindex, uint16_t type, uint16_t flags); -int qdisc_list(int nlsk_fd, uint16_t ifindex); -int qdisc_flush(int nlsk_fd, uint16_t ifindex); -int qdisc_create_ingress(int nlsk_fd, uint16_t ifindex); -int qdisc_create_multiq(int nlsk_fd, uint16_t ifindex); -int qdisc_add_ingress(int nlsk_fd, uint16_t ifindex); -int qdisc_add_multiq(int nlsk_fd, uint16_t ifindex); -int filter_list_ingress(int nlsk_fd, uint16_t ifindex); +int qdisc_list(int nlsk_fd, unsigned int ifindex); +int qdisc_flush(int nlsk_fd, unsigned int ifindex); +int qdisc_create_ingress(int nlsk_fd, unsigned int ifindex); +int qdisc_create_multiq(int nlsk_fd, unsigned int ifindex); +int qdisc_add_ingress(int nlsk_fd, unsigned int ifindex); +int qdisc_add_multiq(int nlsk_fd, unsigned int ifindex); +int filter_list_ingress(int nlsk_fd, unsigned int ifindex); #endif /* _TAP_TCMSGS_H_ */ -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-11-03 09:27:29.542645040 +0000 +++ 0069-net-tap-fix-overflow-of-network-interface-index.patch 2022-11-03 09:27:25.489424686 +0000 @@ -1 +1 @@ -From 8772bbfa717fdf3251b32ea48bdd21ddd6836dde Mon Sep 17 00:00:00 2001 +From f221336cf997d828a3d7d3e68f23694b18a516f2 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 8772bbfa717fdf3251b32ea48bdd21ddd6836dde ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -23 +24 @@ -index a9a55e439e..efe66fe059 100644 +index 6e51b1c2a3..3141598742 100644 @@ -26 +27 @@ -@@ -1682,7 +1682,7 @@ int tap_flow_implicit_create(struct pmd_internals *pmd, +@@ -1684,7 +1684,7 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,