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 BE1AAA0C3F; Tue, 11 May 2021 18:54:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 541C140140; Tue, 11 May 2021 18:54:14 +0200 (CEST) Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) by mails.dpdk.org (Postfix) with ESMTP id 7C3084003E for ; Tue, 11 May 2021 18:54:12 +0200 (CEST) Received: by mail-io1-f52.google.com with SMTP id d24so8936716ios.2 for ; Tue, 11 May 2021 09:54:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=EjfLG6wQsqPnkBRDMR8dj+fkldAvwQm2l78cxWNbJx0=; b=VI0gGnIWHag1fZBFuNoAdLwJigMb/NBqYbrdtZIN0Lvbfh4ECzxH6yv7ZH88sUmX0i GJYy2Ov7FlkhwiZ+XhuvbZGZQxUkOG6NpHbDf7KVcs4OcntNYDLOHcoewc+POZW+JrJm fsVHW0Y/o8eL8+jNKeB50O0oOOrKvQuW0GM63FTdg3qgm+JIRSfKqGWt8NR72aNZF12U ymPd8qNWj2o15Y4BgGgUxJG9cV5tg1zJ6pudR7LBIgT6RhBep5wyJX6RKk9Q+SGJt4Kw vltxifEs85W33g043GuvG/7SUn7xlVNpY2Yg39RSug0qxwgyIgEH8AJ6KInYPcNqqzjR FUKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=EjfLG6wQsqPnkBRDMR8dj+fkldAvwQm2l78cxWNbJx0=; b=EKaH8fCNezbV6/X8RQ2WHpo1szBjpmT+i5WbgoAi39AeTdjfgv7vwukpDyTl8i0Wwv WRJ7iPkhmfvpIDBMFl1zkVdtpIJlVoeMp9+voYGg8qF+No2xUVYp74IZ/KHU9hgC84Xy suSVwAsraxYDlTLdIYeTpZA3FU6vPB/0jFnHkcAuDEqwanbBhGSwSlwM3/iDn0ZKAJfU 3MQ+LA0ZYl3UonIWQcwzEF93NuRqAfysAl66UZYhUjpkZircAZCmP4TM1fxOPGmKF+vB yXbxrtHtx+lYmQJMzblhgO+j3u9n3p7gO0BiJUN9wuTrZCWPBTRVowy/LnWeyCZAooGR rjqA== X-Gm-Message-State: AOAM5315gpQf7R0iC4vOLMDU7kIgxMUI4bE5BeWlxSxquwyjPTg9tA/+ 1kGZS2o6eG2AsoO2fH6wCf5VkOoPx/2AZ+FJq2eEI5Fo+Ww= X-Google-Smtp-Source: ABdhPJy26lkdBnl0AiQIjsePhDxakK9vnIXv73OjI29/ktYP0eHRk2yjZf2J0Zx71f5YU1hYGt2hXfZ+x6SYK4doWbU= X-Received: by 2002:a5e:a50c:: with SMTP id 12mr18316296iog.206.1620752051323; Tue, 11 May 2021 09:54:11 -0700 (PDT) MIME-Version: 1.0 From: kumaraparameshwaran rathinavel Date: Tue, 11 May 2021 22:23:59 +0530 Message-ID: To: dev@dpdk.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-dev] GRO-Flow-Chaining 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 Sender: "dev" Hi All, I just need few clarifications in the GRO code that is present In the below code where the merge fails because the IP length is greater than 65536 we do a insert_new_item but we send prev_idx rather than the cur_idx. This would work for index 0 and 1 but when cur_idx is 1 and merge fails, we would end up sending prev_idx which is 0 and the next_idx of 0 would be 2 rather than 1. We make sure that next_idx of items[2] would be 1 but stack would see re-ordered packets in the TCP stack. Functionally would have zero impacts but if the thresholds of Dup ACKs are lesser we might see un-necessary DUP ACKS. Is my understanding correct or am I missing something? I did change to cur_idx and I did not see the reordering issue. /* * Check all packets in the flow and try to find a neighbor for * the input packet. */ cur_idx = tbl->flows[i].start_index; prev_idx = cur_idx; do { cmp = check_seq_option(&(tbl->items[cur_idx]), tcp_hdr, sent_seq, ip_id, pkt->l4_len, tcp_dl, 0, is_atomic); if (cmp) { if (merge_two_tcp4_packets(&(tbl->items[cur_idx]), pkt, cmp, sent_seq, ip_id, 0)) return 1; /* * Fail to merge the two packets, as the packet * length is greater than the max value. Store * the packet into the flow. */ * if (insert_new_item(tbl, pkt, start_time, prev_idx, sent_seq, ip_id, is_atomic) == INVALID_ARRAY_INDEX)* return -1; return 0; } prev_idx = cur_idx; cur_idx = tbl->items[cur_idx].next_pkt_idx; } while (cur_idx != INVALID_ARRAY_INDEX); Thanks, Param.