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 706ACA0613 for ; Tue, 27 Aug 2019 11:32:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 68C0A1C07F; Tue, 27 Aug 2019 11:32:02 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id C10A51BFE1 for ; Tue, 27 Aug 2019 11:32:00 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 42ABE308A9E0; Tue, 27 Aug 2019 09:32:00 +0000 (UTC) Received: from rh.redhat.com (ovpn-117-48.ams2.redhat.com [10.36.117.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4FC8C5C1D6; Tue, 27 Aug 2019 09:31:59 +0000 (UTC) From: Kevin Traynor To: Konstantin Ananyev Cc: dpdk stable Date: Tue, 27 Aug 2019 10:30:30 +0100 Message-Id: <20190827093032.20423-53-ktraynor@redhat.com> In-Reply-To: <20190827093032.20423-1-ktraynor@redhat.com> References: <20190827093032.20423-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Tue, 27 Aug 2019 09:32:00 +0000 (UTC) Subject: [dpdk-stable] patch 'examples/ip_frag: fix unknown ethernet type' has been queued to LTS release 18.11.3 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 LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/03/19. 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-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/bf07a56016504c4117b3f7e4afb06a389a2e2ebd Thanks. Kevin Traynor --- >From bf07a56016504c4117b3f7e4afb06a389a2e2ebd Mon Sep 17 00:00:00 2001 From: Konstantin Ananyev Date: Thu, 18 Jul 2019 11:11:13 +0100 Subject: [PATCH] examples/ip_frag: fix unknown ethernet type [ upstream commit 826038fcfc7b82866673f10e22cc89860ca4cba3 ] Right now app blindly set IPv4 ether type for all non IPv6 packets. Instead we can save and later restore original type value. Fixes: 74de12b7b63a ("examples/ip_fragmentation: overhaul") Signed-off-by: Konstantin Ananyev --- examples/ip_fragmentation/main.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 8ffcfef80..1bcda4e52 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -234,9 +234,8 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, struct rx_queue *rxq; uint32_t i, len, next_hop; - uint8_t ipv6; - uint16_t port_out; + uint16_t port_out, ether_type; int32_t len2; + const struct ether_hdr *eth; - ipv6 = 0; rxq = &qconf->rx_queue_list[queueid]; @@ -244,4 +243,8 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, port_out = port_in; + /* save ether type of the incoming packet */ + eth = rte_pktmbuf_mtod(m, const struct ether_hdr *); + ether_type = eth->ether_type; + /* Remove the Ethernet header and trailer from the input packet */ rte_pktmbuf_adj(m, (uint16_t)sizeof(struct ether_hdr)); @@ -289,6 +292,4 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, struct ipv6_hdr *ip_hdr; - ipv6 = 1; - /* Read the lookup key (i.e. ip_dst) from the input packet */ ip_hdr = rte_pktmbuf_mtod(m, struct ipv6_hdr *); @@ -347,8 +348,5 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, /* src addr */ ether_addr_copy(&ports_eth_addr[port_out], ð_hdr->s_addr); - if (ipv6) - eth_hdr->ether_type = rte_be_to_cpu_16(ETHER_TYPE_IPv6); - else - eth_hdr->ether_type = rte_be_to_cpu_16(ETHER_TYPE_IPv4); + eth_hdr->ether_type = ether_type; } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-08-27 09:40:13.804656569 +0100 +++ 0053-examples-ip_frag-fix-unknown-ethernet-type.patch 2019-08-27 09:40:10.963143344 +0100 @@ -1 +1 @@ -From 826038fcfc7b82866673f10e22cc89860ca4cba3 Mon Sep 17 00:00:00 2001 +From bf07a56016504c4117b3f7e4afb06a389a2e2ebd Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 826038fcfc7b82866673f10e22cc89860ca4cba3 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -14,2 +15,2 @@ - examples/ip_fragmentation/main.c | 19 +++++++------------ - 1 file changed, 7 insertions(+), 12 deletions(-) + examples/ip_fragmentation/main.c | 16 +++++++--------- + 1 file changed, 7 insertions(+), 9 deletions(-) @@ -18 +19 @@ -index d03e93c90..edf87a1a1 100644 +index 8ffcfef80..1bcda4e52 100644 @@ -21 +22 @@ -@@ -243,10 +243,9 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, +@@ -234,9 +234,8 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, @@ -28,2 +29 @@ - uint64_t ol_flags; -+ const struct rte_ether_hdr *eth; ++ const struct ether_hdr *eth; @@ -32 +31,0 @@ - ol_flags = 0; @@ -34 +33,2 @@ -@@ -255,4 +254,8 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, + +@@ -244,4 +243,8 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, @@ -38 +38 @@ -+ eth = rte_pktmbuf_mtod(m, const struct rte_ether_hdr *); ++ eth = rte_pktmbuf_mtod(m, const struct ether_hdr *); @@ -42,3 +42,3 @@ - rte_pktmbuf_adj(m, (uint16_t)sizeof(struct rte_ether_hdr)); -@@ -303,6 +306,4 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, - struct rte_ipv6_hdr *ip_hdr; + rte_pktmbuf_adj(m, (uint16_t)sizeof(struct ether_hdr)); +@@ -289,6 +292,4 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, + struct ipv6_hdr *ip_hdr; @@ -49,11 +49,8 @@ - ip_hdr = rte_pktmbuf_mtod(m, struct rte_ipv6_hdr *); -@@ -365,11 +366,5 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, - rte_ether_addr_copy(&ports_eth_addr[port_out], - ð_hdr->s_addr); -- if (ipv6) { -- eth_hdr->ether_type = -- rte_be_to_cpu_16(RTE_ETHER_TYPE_IPV6); -- } else { -- eth_hdr->ether_type = -- rte_be_to_cpu_16(RTE_ETHER_TYPE_IPV4); -- } + ip_hdr = rte_pktmbuf_mtod(m, struct ipv6_hdr *); +@@ -347,8 +348,5 @@ l3fwd_simple_forward(struct rte_mbuf *m, struct lcore_queue_conf *qconf, + /* src addr */ + ether_addr_copy(&ports_eth_addr[port_out], ð_hdr->s_addr); +- if (ipv6) +- eth_hdr->ether_type = rte_be_to_cpu_16(ETHER_TYPE_IPv6); +- else +- eth_hdr->ether_type = rte_be_to_cpu_16(ETHER_TYPE_IPv4);