Show a cover letter.

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

{
    "id": 809152,
    "url": "http://patchwork.ozlabs.org/api/covers/809152/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/cover/20170902214929.2890-1-jiri@resnulli.us/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170902214929.2890-1-jiri@resnulli.us>",
    "list_archive_url": null,
    "date": "2017-09-02T21:49:08",
    "name": "[net-next,v2,00/21] mlxsw: Offloading GRE tunnels",
    "submitter": {
        "id": 15321,
        "url": "http://patchwork.ozlabs.org/api/people/15321/?format=api",
        "name": "Jiri Pirko",
        "email": "jiri@resnulli.us"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/cover/20170902214929.2890-1-jiri@resnulli.us/mbox/",
    "series": [
        {
            "id": 1180,
            "url": "http://patchwork.ozlabs.org/api/series/1180/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=1180",
            "date": "2017-09-02T21:49:08",
            "name": "mlxsw: Offloading GRE tunnels",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/1180/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/809152/comments/",
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": "patchwork-incoming@ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=resnulli-us.20150623.gappssmtp.com\n\theader.i=@resnulli-us.20150623.gappssmtp.com\n\theader.b=\"app5K0pr\"; dkim-atps=neutral"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xl8sN5jvzz9s8J\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun,  3 Sep 2017 07:49:44 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752780AbdIBVtf (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 2 Sep 2017 17:49:35 -0400",
            "from mail-wr0-f170.google.com ([209.85.128.170]:33767 \"EHLO\n\tmail-wr0-f170.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752761AbdIBVte (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Sat, 2 Sep 2017 17:49:34 -0400",
            "by mail-wr0-f170.google.com with SMTP id k94so7187346wrc.0\n\tfor <netdev@vger.kernel.org>; Sat, 02 Sep 2017 14:49:33 -0700 (PDT)",
            "from localhost (jirka.pirko.cz. [84.16.102.26])\n\tby smtp.gmail.com with ESMTPSA id\n\tc18sm2706668wmd.5.2017.09.02.14.49.30\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tSat, 02 Sep 2017 14:49:31 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=resnulli-us.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id;\n\tbh=q/zP5iYCnFlKSeDK2/j9yFPqYp3nNkFvTyhG6a5/Cs8=;\n\tb=app5K0pr3ZW9MeEUAB2uhoOeY68AzOIxzKrO0qEP1Zo+uOBtySc/WBEAkZB3GL7kA3\n\tIk7I9v6fjDNJC+feDMAHNAV7nybLaVaV5HteqrtEsEYiExChNURnqZ9rrwmWmbSazXHW\n\twUSzmN6he282A1jk0v1fmeOhvkEJ/DuRkHlW/6Pfg4ZjOjb6PZAe9usjpk0SGC5v3+Kg\n\tjiYY79Ezj5RRe7cPaJBeh3Bg6Jcu0xmMZXTQMU7YQ8n1PIqjtGhuyhPOr30chYJhkBxW\n\tA0vjTudgMdoBSKXxKVbuM1InSOxxaY75z42Dc11k+479Q2yi/h9/10CVr43IoyP0v0m5\n\txWCg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=q/zP5iYCnFlKSeDK2/j9yFPqYp3nNkFvTyhG6a5/Cs8=;\n\tb=jlIB26m8b4OXmdfgheEbQFDoV+CY9+iFVH/3X4sd7ig+8tWkPG3khlanek85y8+++o\n\ta4d6rvhzoQgsgihl73Wec3AWr+lBEraRcJcvFBRcAZCERlko23UMqqf5xK3n0CNK22wO\n\tnX0JAvGwC0jSXukjedkJfFbmpXY2AosJXNj2uiFi8ORcHQrWPeAd8JUejyC5mPN8aiGo\n\t61s22SifJkDom8lKvRVzs9SBqQxEDmP3Cca33B54M6lqfxhIo4HRFTze9+WYS11ztSbL\n\tKgmxxfh43msl8TYetnkTLhoCHerz7xN89z/LjVlUG/FUYnQ9cLfgrK7u77IeJFhfY8JX\n\tiZQA==",
        "X-Gm-Message-State": "AHPjjUhCd9R1nfOnsSY0oBKD5umDBlOokseNoBifQtNMcWY3xyvDkWvL\n\tN2in8XUAPq2nMLDYP/Q=",
        "X-Google-Smtp-Source": "ADKCNb7XwNf7Y1XStKe6SW3k+wMHpBKEWDbYaWkT+/hAvqqPGmvYFMHSJlDQUszObo25bR64jPX78A==",
        "X-Received": "by 10.223.148.196 with SMTP id 62mr1361165wrr.58.1504388972488; \n\tSat, 02 Sep 2017 14:49:32 -0700 (PDT)",
        "From": "Jiri Pirko <jiri@resnulli.us>",
        "To": "netdev@vger.kernel.org",
        "Cc": "davem@davemloft.net, petrm@mellanox.com, idosch@mellanox.com,\n\tmlxsw@mellanox.com",
        "Subject": "[patch net-next v2 00/21] mlxsw: Offloading GRE tunnels",
        "Date": "Sat,  2 Sep 2017 23:49:08 +0200",
        "Message-Id": "<20170902214929.2890-1-jiri@resnulli.us>",
        "X-Mailer": "git-send-email 2.9.3",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "From: Jiri Pirko <jiri@mellanox.com>\n\nPetr says:\n\nThis patch series introduces to mlxsw driver support for offloading\nIP-in-IP tunnels in general, and for (subset of) GRE in particular.\n\nThis patchset supports two ways of configuring GRE:\n\n- So called \"hierarchical configuration\", where the GRE device has a bound\n  dummy device, which is in a different VRF. The VRF with host traffic is\n  called \"overlay\", the one with encapsulated traffic is called \"underlay\".\n\n- So called \"flat configuration\", where the GRE device doesn't have a bound\n  device, and overlay and underlay are both in the same VRF (possibly the\n  default one).\n\nTwo routes are then interesting: a route that directs traffic to a GRE\ndevice (which would typically be in overlay VRF, but could be in another\none), and a local route for the tunnel's local address (in underlay).\nHandling of these two route types is then introduced as patches to support,\nrespectively, IPv4 and IPv6 encapsulation and IPv4 decapsulation.\n\nThe encap and decap routes then reference a loopback device, a new type of\nRIF introduced by this patchset for the specific use of offloading tunnels.\n\nThe encap and decap code is abstract with respect to the particulars of\nindividual L3 tunnel types. This patchset introduces support for GRE\ntunnels in particular.\n\nLimitations:\n\n- Each tunnel needs to have a different local address (within a given VRF).\n  When two tunnels are used that are in conflict, FIB abort is triggered\n  and the driver ceases offloading FIBs. Full handling of such\n  configurations needs special setup in the hardware, such that the tunnels\n  that share an address are dispatched correctly according to their key (or\n  lack thereof). That's currently not implemented, and to keep things\n  deterministic, the driver triggers FIB abort.\n\n- A next hop that uses an incompletely-specified tunnel (e.g. such that are\n  used for LWT) is not offloaded, but doesn't trigger FIB abort like the\n  above. If such routes end up being in a de facto conflict with other\n  tunnels, then if there already is an offload for that address, the\n  traffic for the conflicting tunnel will end up mismatching the\n  configuration of the offloaded tunnel, and thus gets to slow path through\n  an error trap.\n\n- GRE checksumming and sequence numbers are not supported and TTL and TOS\n  need to be set to inherit. Tunnels with a different configuration are not\n  offloaded and their traffic is trapping to slow path.\n\n  Note in particular that TOS of inherit is not the default configuration\n  and needs to be explicitly specified when the tunnel is created.\n\n- The only feature that is not graciously handled is that if a change is\n  made to the tunnel, e.g. through \"ip tunnel change\", such changes are not\n  reflected in the driver. There is currently no notification mechanism for\n  these changes. Introduction of this mechanism and its leverage in the\n  driver will be subject of follow-up work. For now this limitation can be\n  worked around by removing and re-adding the encap route.\n\n---\nv1->v2:\n-fix order of patch 5\n\nPetr Machata (21):\n  mlxsw: reg: Update RITR to support loopback device\n  mlxsw: reg: Update RATR to support IP-in-IP tunnels\n  mlxsw: reg: Move enum mlxsw_reg_ratr_trap_id\n  mlxsw: reg: Add mlxsw_reg_ralue_act_ip2me_tun_pack()\n  mlxsw: reg: Add Routing Tunnel Decap Properties Register\n  mlxsw: reg: Extract mlxsw_reg_ritr_mac_pack()\n  mlxsw: reg: Give mlxsw_reg_ratr_pack a type parameter\n  mlxsw: spectrum_router: Publish mlxsw_sp_l3proto\n  mlxsw: spectrum_router: Add mlxsw_sp_ipip_ops\n  mlxsw: spectrum_router: Support FID-less RIFs\n  mlxsw: spectrum_router: Introduce loopback RIFs\n  mlxsw: spectrum_router: Extract mlxsw_sp_fi_is_gateway()\n  mlxsw: spectrum_router: Extract mlxsw_sp_rt6_is_gateway()\n  mlxsw: spectrum_router: Make nexthops typed\n  mlxsw: spectrum_router: Support IPv4 overlay encap\n  mlxsw: spectrum_router: Support IPv6 overlay encap\n  mlxsw: spectrum_router: Support IPv4 underlay decap\n  mlxsw: spectrum_router: Use existing decap route\n  mlxsw: spectrum: Register for IPIP_DECAP_ERROR trap\n  mlxsw: spectrum_router: Add loopback accessors\n  mlxsw: spectrum_router: Support GRE tunnels\n\n drivers/net/ethernet/mellanox/mlxsw/Makefile       |   4 +-\n drivers/net/ethernet/mellanox/mlxsw/reg.h          | 311 ++++++-\n drivers/net/ethernet/mellanox/mlxsw/spectrum.c     |   1 +\n drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |   1 +\n .../net/ethernet/mellanox/mlxsw/spectrum_ipip.c    | 214 +++++\n .../net/ethernet/mellanox/mlxsw/spectrum_ipip.h    |  79 ++\n .../net/ethernet/mellanox/mlxsw/spectrum_router.c  | 947 +++++++++++++++++++--\n .../net/ethernet/mellanox/mlxsw/spectrum_router.h  |  28 +\n drivers/net/ethernet/mellanox/mlxsw/trap.h         |   1 +\n 9 files changed, 1485 insertions(+), 101 deletions(-)\n create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c\n create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.h"
}