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 1054E45BFE; Mon, 28 Oct 2024 17:33:56 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4269D427B2; Mon, 28 Oct 2024 17:33:44 +0100 (CET) Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by mails.dpdk.org (Postfix) with ESMTP id 44E054275C for ; Mon, 28 Oct 2024 17:33:38 +0100 (CET) Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-20cd76c513cso40477325ad.3 for ; Mon, 28 Oct 2024 09:33:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1730133217; x=1730738017; darn=dpdk.org; 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=DmOcTFjE8EFypnZ1hnt/cUqaAt3e82yvULoUPvJwORo=; b=qn+ptntLyZ7VWtyQo7ULS6pabmtyS3m3jtfd8pzXwfdr2d/a3az313Ixg3OZzq+imk fHJr898DXPKmJcHEyWx0wb7AbD3mxx9Dv5ttiwtiI3QLbrVszvqqoXqY5cof4G0HDdlT iGQynBQKHNTXQygjG/8bJ+yq86W7zThDzqWp9PuXG3VnSQxTXg5vn9EUGv1tvnar+rWl bkLuieASnyWKtLD+30DtY350ZKqKUURxH4MiZKlQXZ2G8KQ//LgU44Txc//Sl8jisA0O rrXbLYu0cTb7vpZIPv14I/oHJoZmPuW3tOU6hmufcG1LiECVjxpmkNNup+RuGly0Z4tJ Xfpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730133217; x=1730738017; 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=DmOcTFjE8EFypnZ1hnt/cUqaAt3e82yvULoUPvJwORo=; b=q2ivRFBSJI0OCdN8Pz6SFTbzy7zHuyL7YBbNnk4BaCG5LJwYfpCoRm2dEsko3Q/tfr yCiD0Aevk3lZfHZq5HljQUSqPt24KTvtQTmz4hP+MC6gDtPE408NJN87sL3Mdn9YMmdZ YOxMIe0RLXKCbG4nECmjng8PgzzDHe9OhTHDyPMhvIxx4jllNyc3+hLfaB2b8NusaKzi E4ca9UtyTC0Dtfw1731szmxHaOaavcYG90LcBzFIoR0Ii6YdhvR5FaPsP1g96lTdhug8 fwK4oUXiKDiEjz4X4GespeqgBLDhhguTvmQaRdJtOiZZO7dYd4ErXqngEBZU6oxeGh/T eDFQ== X-Gm-Message-State: AOJu0YyQ9csS8idDFTAh3NtTYCjUGvmELTiHaDjtZ2XXtP6ge+B2s17f uwYfOqdl54mu9PzbjrIbNa1+1DAgZJMOxTbkLHlNnzf/0w5aO/lg7wez0HXvn/QzxUA+OgFqLU6 L X-Google-Smtp-Source: AGHT+IFQ4cmRu8KRmdjuQnCwnbufkTLqMu4KyM4wfaT3RZgxL3YV2mC78WDuWoA3gyGpBqtVSLtCBQ== X-Received: by 2002:a17:902:d48e:b0:20e:5777:1b83 with SMTP id d9443c01a7336-210c6c011b6mr118468465ad.24.1730133217183; Mon, 28 Oct 2024 09:33:37 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-210bbf43460sm52709895ad.23.2024.10.28.09.33.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Oct 2024 09:33:36 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH 3/4] net/tap: do not use opaque parameter in convert Date: Mon, 28 Oct 2024 09:32:11 -0700 Message-ID: <20241028163324.193338-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241028163324.193338-1-stephen@networkplumber.org> References: <20241028163324.193338-1-stephen@networkplumber.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The function to convert from internal representation to netlink was using a void pointer when both caller and callee were using same structure. Signed-off-by: Stephen Hemminger --- drivers/net/tap/tap_flow.c | 47 +++++++++++++------------------------- 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/drivers/net/tap/tap_flow.c b/drivers/net/tap/tap_flow.c index 6564583174..c0e44bb1a7 100644 --- a/drivers/net/tap/tap_flow.c +++ b/drivers/net/tap/tap_flow.c @@ -74,12 +74,12 @@ struct action_data { }; }; -static int tap_flow_create_eth(const struct rte_flow_item *item, void *data); -static int tap_flow_create_vlan(const struct rte_flow_item *item, void *data); -static int tap_flow_create_ipv4(const struct rte_flow_item *item, void *data); -static int tap_flow_create_ipv6(const struct rte_flow_item *item, void *data); -static int tap_flow_create_udp(const struct rte_flow_item *item, void *data); -static int tap_flow_create_tcp(const struct rte_flow_item *item, void *data); +static int tap_flow_create_eth(const struct rte_flow_item *item, struct convert_data *info); +static int tap_flow_create_vlan(const struct rte_flow_item *item, struct convert_data *info); +static int tap_flow_create_ipv4(const struct rte_flow_item *item, struct convert_data *info); +static int tap_flow_create_ipv6(const struct rte_flow_item *item, struct convert_data *info); +static int tap_flow_create_udp(const struct rte_flow_item *item, struct convert_data *info); +static int tap_flow_create_tcp(const struct rte_flow_item *item, struct convert_data *info); static int tap_flow_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr, @@ -139,19 +139,10 @@ struct tap_flow_items { * along with the item. */ const void *default_mask; - /** - * Conversion function from rte_flow to netlink attributes. - * - * @param item - * rte_flow item to convert. - * @param data - * Internal structure to store the conversion. - * - * @return - * 0 on success, negative value otherwise. - */ - int (*convert)(const struct rte_flow_item *item, void *data); - /** List of possible following items. */ + /* Conversion function from rte_flow to netlink attributes. */ + int (*convert)(const struct rte_flow_item *item, struct convert_data *info); + + /* List of possible following items. */ const enum rte_flow_item_type *const items; }; @@ -417,9 +408,8 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = { * 0 if checks are alright, -1 otherwise. */ static int -tap_flow_create_eth(const struct rte_flow_item *item, void *data) +tap_flow_create_eth(const struct rte_flow_item *item, struct convert_data *info) { - struct convert_data *info = (struct convert_data *)data; const struct rte_flow_item_eth *spec = item->spec; const struct rte_flow_item_eth *mask = item->mask; struct rte_flow *flow = info->flow; @@ -471,9 +461,8 @@ tap_flow_create_eth(const struct rte_flow_item *item, void *data) * 0 if checks are alright, -1 otherwise. */ static int -tap_flow_create_vlan(const struct rte_flow_item *item, void *data) +tap_flow_create_vlan(const struct rte_flow_item *item, struct convert_data *info) { - struct convert_data *info = (struct convert_data *)data; const struct rte_flow_item_vlan *spec = item->spec; const struct rte_flow_item_vlan *mask = item->mask; struct rte_flow *flow = info->flow; @@ -531,9 +520,8 @@ tap_flow_create_vlan(const struct rte_flow_item *item, void *data) * 0 if checks are alright, -1 otherwise. */ static int -tap_flow_create_ipv4(const struct rte_flow_item *item, void *data) +tap_flow_create_ipv4(const struct rte_flow_item *item, struct convert_data *info) { - struct convert_data *info = (struct convert_data *)data; const struct rte_flow_item_ipv4 *spec = item->spec; const struct rte_flow_item_ipv4 *mask = item->mask; struct rte_flow *flow = info->flow; @@ -586,9 +574,8 @@ tap_flow_create_ipv4(const struct rte_flow_item *item, void *data) * 0 if checks are alright, -1 otherwise. */ static int -tap_flow_create_ipv6(const struct rte_flow_item *item, void *data) +tap_flow_create_ipv6(const struct rte_flow_item *item, struct convert_data *info) { - struct convert_data *info = (struct convert_data *)data; const struct rte_flow_item_ipv6 *spec = item->spec; const struct rte_flow_item_ipv6 *mask = item->mask; struct rte_flow *flow = info->flow; @@ -642,9 +629,8 @@ tap_flow_create_ipv6(const struct rte_flow_item *item, void *data) * 0 if checks are alright, -1 otherwise. */ static int -tap_flow_create_udp(const struct rte_flow_item *item, void *data) +tap_flow_create_udp(const struct rte_flow_item *item, struct convert_data *info) { - struct convert_data *info = (struct convert_data *)data; const struct rte_flow_item_udp *spec = item->spec; const struct rte_flow_item_udp *mask = item->mask; struct rte_flow *flow = info->flow; @@ -688,9 +674,8 @@ tap_flow_create_udp(const struct rte_flow_item *item, void *data) * 0 if checks are alright, -1 otherwise. */ static int -tap_flow_create_tcp(const struct rte_flow_item *item, void *data) +tap_flow_create_tcp(const struct rte_flow_item *item, struct convert_data *info) { - struct convert_data *info = (struct convert_data *)data; const struct rte_flow_item_tcp *spec = item->spec; const struct rte_flow_item_tcp *mask = item->mask; struct rte_flow *flow = info->flow; -- 2.45.2