From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by dpdk.org (Postfix) with ESMTP id 52ED65959 for ; Sun, 6 Jul 2014 17:19:29 +0200 (CEST) Received: by mail-wi0-f182.google.com with SMTP id bs8so5549704wib.15 for ; Sun, 06 Jul 2014 08:19:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=n/3ioixmp42i8Fg74nqBwLGptNQ8kJD7vKzD+60DM/4=; b=dDlAO3kFE3ToE5pgErtffCpk+EQyrk42fw2K3Kdx4051/gEekSlHag0IEWBoz73BFL RG9xtRYvIQKyMs9COyHltjxGuTrLa5aL27mBiZxLEFcChhCGFN1yY8PQqjml2tCFUfl4 b+MYUXxxgBOh8BTm8pTJymhfNjI1O3/EkTW5moz7f3dOr4wYX4hyItuKxQ5bCC6lFpIo IV25Oo8dNfYZtLYdwd/9cwCltugNSOrpbWB+nYdH8MKxstlBD2jODUe/C9SCwRB99lnQ EmkuZY7BEcyhmwiEOwRhukZG7g1waQeiCAGEvF7YqwChir8Da+0o1tNndWsEmjMEvILm 38aA== MIME-Version: 1.0 X-Received: by 10.180.90.82 with SMTP id bu18mr10931756wib.44.1404659990809; Sun, 06 Jul 2014 08:19:50 -0700 (PDT) Received: by 10.194.139.167 with HTTP; Sun, 6 Jul 2014 08:19:50 -0700 (PDT) Date: Sun, 6 Jul 2014 18:19:50 +0300 Message-ID: From: Helmut Sim To: "dev@dpdk.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] phantom old packets received in new mbuf X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jul 2014 15:19:29 -0000 Hi All, I face a very strange behavior. I do: rte_eth_rx_burst(port[i].portid, 0, pkts_burst, MAX_PKT_BURST) then I reassemble the received UDP segments into one packet (i used the ip_reassembly example), manipulate its content and send it back to the network after fragmenting the packet. This works great, ...well only most of the time it works great... sometimes it happens that a packet is reassembled and retransmitted to the network, and after a while I receive one of its segment instead of a a segment of a totally different packet... i.e. rx seg 1 of pkt.id x rx seg 2 of pkt.id x rx seg 3 of pkt.id x rx seg 4 of pkt.id x packet is reassembled and sent to the network. then i get: rx seg 1 of pkt.id y rx seg 2 of pkt.id y rx seg 3 of pkt.id y rx seg 2 of pkt.id x .... it looks like the pmd gives me a mbuf that points to an old freed buffer instead of a new allocated buffer with the new segment data. or alternatively, the pmd allocates the buffer but doesn't copy the rx data into it... the input packets were checked with a wireshark and it fits my description above. I checked it with different level of delay between the packets, but it still happens. I am using dpdk 1.6.0 r2. specifically running over an ubuntu 14.04 server on a xen hypervisor using the NIC 82576 as pci passthrough mode. using one single port and one single queue. obviously I suspect that the problem is at my side, but couldn't find it, ...yet. Any idea or known issue? Thanks Sim