Show a cover letter.

GET /api/covers/62315/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 62315,
    "url": "http://patches.dpdk.org/api/covers/62315/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/cover.1572621162.git.vladimir.medvedkin@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<cover.1572621162.git.vladimir.medvedkin@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/cover.1572621162.git.vladimir.medvedkin@intel.com",
    "date": "2019-11-01T15:21:33",
    "name": "[v6,00/12] lib: add RIB and FIB liraries",
    "submitter": {
        "id": 1216,
        "url": "http://patches.dpdk.org/api/people/1216/?format=api",
        "name": "Vladimir Medvedkin",
        "email": "vladimir.medvedkin@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/cover.1572621162.git.vladimir.medvedkin@intel.com/mbox/",
    "series": [
        {
            "id": 7198,
            "url": "http://patches.dpdk.org/api/series/7198/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7198",
            "date": "2019-11-01T15:21:33",
            "name": "lib: add RIB and FIB liraries",
            "version": 6,
            "mbox": "http://patches.dpdk.org/series/7198/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/62315/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id BD61CA00BE;\n\tFri,  1 Nov 2019 16:21:53 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 32F761BED8;\n\tFri,  1 Nov 2019 16:21:53 +0100 (CET)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n by dpdk.org (Postfix) with ESMTP id 711261BEAA\n for <dev@dpdk.org>; Fri,  1 Nov 2019 16:21:51 +0100 (CET)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n 01 Nov 2019 08:21:50 -0700",
            "from silpixa00400072.ir.intel.com ([10.237.222.213])\n by orsmga004.jf.intel.com with ESMTP; 01 Nov 2019 08:21:48 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.68,256,1569308400\"; d=\"scan'208\";a=\"351979057\"",
        "From": "Vladimir Medvedkin <vladimir.medvedkin@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "bruce.richardson@intel.com, konstantin.ananyev@intel.com,\n thomas@monjalon.net, aconole@redhat.com",
        "Date": "Fri,  1 Nov 2019 15:21:33 +0000",
        "Message-Id": "<cover.1572621162.git.vladimir.medvedkin@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<cover.1568221361.git.vladimir.medvedkin@intel.com>",
        "References": "<cover.1568221361.git.vladimir.medvedkin@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v6 00/12] lib: add RIB and FIB liraries",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This is heavily reworked version of previous RIB library series:\nhttps://mails.dpdk.org/archives/dev/2018-April/099492.html\n\nCurrent lpm implementation while provides really good lookup\nperformance has number of problems.\nOne of them is very low speed for control plane operations\nsuch as add or delete a route.\nAnother disadvantage is fixed number of bits for userdata\n(24 for v4 and 21 for v6)\nAlso it is hard to introduce changes in existing LPM code or add new\nalgorithms without breaking ABI.\n\nThis patch series tries to solve this problems by:\nIntroduce two new libraries - RIB and FIB.\nRIB that is Routing Information Base.\nIt implements a control plane struct containing routes in a tree and\nprovides fast add/del operations for routes. Also it allows to perform\nfast subtree traversals (i.e. retrieve existing subroutes for a given\nprefix). This structure will be used as a control plane helper structure\nfor FIB implementation.\nAlso it might be used standalone in other different places such as\nbitmaps for example.\n\nSecond library is FIB that is Forwarding Information Base. It represents\ndataplane related struct and algorithms for longest prefix match.\nInternally it consists of two parts - RIB (control plane ops) and\nimplementation for the dataplane tasks.\nInitial version provides two implementations for both ipv4 and ipv6:\ndummy (uses RIB as a dataplane) and DIR24_8 (same as current LPM)\nDue to proposed design it allows to extend FIB with new algorithms in future\n(for example DXR, poptrie, etc).\n\nFrom our measurements we saw 10x speedup for control plane operations\ncomparing with current LPM library (depending on prefix length distribution)\n\nToDo:\n - introduce new performance measurement app.\n - add documentation.\n - add support into existing examples (l3fwd)\n\nv6:\nMove long-running tests into a pref test section\n\nVladimir Medvedkin (12):\n  rib: add RIB library\n  test/rib: add RIB library autotests\n  rib: add ipv6 support for RIB\n  test/rib: add ipv6 support for RIB autotests\n  fib: add FIB library\n  fib: add FIB ipv6 support\n  fib: add DIR24-8 dataplane algorithm\n  fib: add dataplane algorithm for ipv6\n  test/fib: add FIB library autotests\n  test/fib: add ipv6 support for FIB autotests\n  test/fib: add FIB library performance autotests\n  test/fib: add FIB library ipv6 performance autotests\n\n app/test/Makefile                  |   7 +\n app/test/autotest_data.py          |  48 +++\n app/test/meson.build               |  16 +\n app/test/test_fib.c                | 414 ++++++++++++++++++++\n app/test/test_fib6.c               | 423 +++++++++++++++++++++\n app/test/test_fib6_perf.c          | 157 ++++++++\n app/test/test_fib_perf.c           | 411 ++++++++++++++++++++\n app/test/test_rib.c                | 351 +++++++++++++++++\n app/test/test_rib6.c               | 357 +++++++++++++++++\n config/common_base                 |  11 +\n doc/api/doxy-api.conf.in           |   2 +\n lib/Makefile                       |   4 +\n lib/librte_fib/Makefile            |  25 ++\n lib/librte_fib/dir24_8.c           | 737 +++++++++++++++++++++++++++++++++++\n lib/librte_fib/dir24_8.h           |  36 ++\n lib/librte_fib/meson.build         |   8 +\n lib/librte_fib/rte_fib.c           | 319 ++++++++++++++++\n lib/librte_fib/rte_fib.h           | 188 +++++++++\n lib/librte_fib/rte_fib6.c          | 322 ++++++++++++++++\n lib/librte_fib/rte_fib6.h          | 193 ++++++++++\n lib/librte_fib/rte_fib_version.map |  23 ++\n lib/librte_fib/trie.c              | 760 +++++++++++++++++++++++++++++++++++++\n lib/librte_fib/trie.h              |  37 ++\n lib/librte_rib/Makefile            |  25 ++\n lib/librte_rib/meson.build         |   8 +\n lib/librte_rib/rte_rib.c           | 532 ++++++++++++++++++++++++++\n lib/librte_rib/rte_rib.h           | 277 ++++++++++++++\n lib/librte_rib/rte_rib6.c          | 598 +++++++++++++++++++++++++++++\n lib/librte_rib/rte_rib6.h          | 334 ++++++++++++++++\n lib/librte_rib/rte_rib_version.map |  35 ++\n lib/meson.build                    |   4 +-\n mk/rte.app.mk                      |   2 +\n 32 files changed, 6663 insertions(+), 1 deletion(-)\n create mode 100644 app/test/test_fib.c\n create mode 100644 app/test/test_fib6.c\n create mode 100644 app/test/test_fib6_perf.c\n create mode 100644 app/test/test_fib_perf.c\n create mode 100644 app/test/test_rib.c\n create mode 100644 app/test/test_rib6.c\n create mode 100644 lib/librte_fib/Makefile\n create mode 100644 lib/librte_fib/dir24_8.c\n create mode 100644 lib/librte_fib/dir24_8.h\n create mode 100644 lib/librte_fib/meson.build\n create mode 100644 lib/librte_fib/rte_fib.c\n create mode 100644 lib/librte_fib/rte_fib.h\n create mode 100644 lib/librte_fib/rte_fib6.c\n create mode 100644 lib/librte_fib/rte_fib6.h\n create mode 100644 lib/librte_fib/rte_fib_version.map\n create mode 100644 lib/librte_fib/trie.c\n create mode 100644 lib/librte_fib/trie.h\n create mode 100644 lib/librte_rib/Makefile\n create mode 100644 lib/librte_rib/meson.build\n create mode 100644 lib/librte_rib/rte_rib.c\n create mode 100644 lib/librte_rib/rte_rib.h\n create mode 100644 lib/librte_rib/rte_rib6.c\n create mode 100644 lib/librte_rib/rte_rib6.h\n create mode 100644 lib/librte_rib/rte_rib_version.map"
}