{"id":818160,"url":"http://patchwork.ozlabs.org/api/covers/818160/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/cover/1506335021-32024-1-git-send-email-simon.horman@netronome.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/projects/7/?format=json","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":"<1506335021-32024-1-git-send-email-simon.horman@netronome.com>","list_archive_url":null,"date":"2017-09-25T10:23:34","name":"[net-next,0/7] nfp: flower vxlan tunnel offload","submitter":{"id":64714,"url":"http://patchwork.ozlabs.org/api/people/64714/?format=json","name":"Simon Horman","email":"simon.horman@netronome.com"},"mbox":"http://patchwork.ozlabs.org/project/netdev/cover/1506335021-32024-1-git-send-email-simon.horman@netronome.com/mbox/","series":[{"id":4932,"url":"http://patchwork.ozlabs.org/api/series/4932/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=4932","date":"2017-09-25T10:23:34","name":"nfp: flower vxlan tunnel offload","version":1,"mbox":"http://patchwork.ozlabs.org/series/4932/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/818160/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=netronome-com.20150623.gappssmtp.com\n\theader.i=@netronome-com.20150623.gappssmtp.com\n\theader.b=\"ld4RZIcv\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y10Yb2LbDz9tX3\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon, 25 Sep 2017 20:24:03 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S934120AbdIYKYB (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tMon, 25 Sep 2017 06:24:01 -0400","from mail-wm0-f54.google.com ([74.125.82.54]:47749 \"EHLO\n\tmail-wm0-f54.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S932909AbdIYKYA (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Mon, 25 Sep 2017 06:24:00 -0400","by mail-wm0-f54.google.com with SMTP id r136so17960944wmf.2\n\tfor <netdev@vger.kernel.org>; Mon, 25 Sep 2017 03:23:59 -0700 (PDT)","from penelope.horms.nl ([217.111.208.18])\n\tby smtp.gmail.com with ESMTPSA id\n\t10sm6816818wrt.59.2017.09.25.03.23.57\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tMon, 25 Sep 2017 03:23:57 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=netronome-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id;\n\tbh=5UoT3KpiOReYN+ohID659XO9tqylAfMKD+7GlNCt4fg=;\n\tb=ld4RZIcvYvRPwJCx39cVCs0f9DOJROwKvs0O5nGF5+I2Tv/AW/czjEAZ4ysH5Sv+gO\n\tLKizXkqbS/GUQMEjkIkOpU8LX/WlIoJILyB/UTDNfwbyAoc0gRAV7dgrkZDA+PP+nrEO\n\tV2+oymup+JAhLWkhKUq9R0EMBGShKkihKiwKDoprGB3IF4PKLBH5fYvLpb/2Dj5Mn49J\n\t59dxAMmHx8pnCo6BPirtbL4ui1CjN7T/krTHGS3AgvTIL4k+PVJGqTYA2gGnmOh+4/i/\n\tEfVwCcRxR6y7Yf91oo5g3UxhfBl42uiDE8xFLmluThfiOijgdwdkggwmp6nQ0tuA2Ntg\n\tLGPg==","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=5UoT3KpiOReYN+ohID659XO9tqylAfMKD+7GlNCt4fg=;\n\tb=s8kV9/5jw8cRuniqX9vDFjaBn06ye38oJT6r8uwq7huTysw7cDHtmp9YgfoSnHIwKG\n\tK9DyjCN7jn2Nox+3W0IuDe7HXtbArMyI+fIjznlvNL2RVd3PNMhPj9/x8TYlGKcn+HoZ\n\thkcVtCDONLU9Np59Qldbis2dcv7gUfzh8nBZ3bqGSeBKbOsM8uADd8eekdAbo+mwyZfd\n\t9ey8HQK/smXmKkup7+y550IPt0JqSbO+yVwN0WgVfx+plRl6ItBo0LHrVtJNyFdGGeo0\n\tBdUh+cU8McYwO8aXIN4C7HHU+iPWp7nj8i0ammn4IdB/UFECChrjqtZ2lmcYKrTRQ2Fa\n\t3B7Q==","X-Gm-Message-State":"AHPjjUj6vzzRi3FLWQwzQi56ObOjlbtkEvXBH4fBWjfEpAH6klE6lTDT\n\t3Vku3MJIG9g17EHMVEPAvnBLNBfvMYE=","X-Google-Smtp-Source":"AOwi7QBc6hIdVrI34VauegEdhoVSe2MvP7ThzeJpMlC+6ZuiKG7bf0x5tze60JPjKJFwNN9/ax4h8Q==","X-Received":"by 10.28.69.11 with SMTP id s11mr8013wma.81.1506335038707;\n\tMon, 25 Sep 2017 03:23:58 -0700 (PDT)","From":"Simon Horman <simon.horman@netronome.com>","To":"David Miller <davem@davemloft.net>,\n\tJakub Kicinski <jakub.kicinski@netronome.com>","Cc":"netdev@vger.kernel.org, oss-drivers@netronome.com,\n\tSimon Horman <simon.horman@netronome.com>","Subject":"[PATCH net-next 0/7] nfp: flower vxlan tunnel offload","Date":"Mon, 25 Sep 2017 12:23:34 +0200","Message-Id":"<1506335021-32024-1-git-send-email-simon.horman@netronome.com>","X-Mailer":"git-send-email 2.1.4","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"From: Simon Horman <simon.horman@netronome.com>\n\nJohn says:\n\nThis patch set allows offloading of TC flower match and set tunnel fields\nto the NFP. The initial focus is on VXLAN traffic. Due to the current\nstate of the NFP firmware, only VXLAN traffic on well known port 4789 is\nhandled. The match and action fields must explicity set this value to be\nsupported. Tunnel end point information is also offloaded to the NFP for\nboth encapsulation and decapsulation. The NFP expects 3 separate data sets\nto be supplied.\n\nFor decapsulation, 2 separate lists exist; a list of MAC addresses\nreferenced by an index comprised of the port number, and a list of IP\naddresses. These IP addresses are not connected to a MAC or port. The MAC\naddresses can be written as a block or one at a time (because they have an\nindex, previous values can be overwritten) while the IP addresses are\nalways written as a list of all the available IPs. Because the MAC address\nused as a tunnel end point may be associated with a physical port or may\nbe a virtual netdev like an OVS bridge, we do not know which addresses\nshould be offloaded. For this reason, all MAC addresses of active netdevs\nare offloaded to the NFP. A notifier checks for changes to any currently\noffloaded MACs or any new netdevs that may occur. For IP addresses, the\ntunnel end point used in the rules is known as the destination IP address\nmust be specified in the flower classifier rule. When a new IP address\nappears in a rule, the IP address is offloaded. The IP is removed from the\noffloaded list when all rules matching on that IP are deleted.\n\nFor encapsulation, a next hop table is updated on the NFP that contains\nthe source/dest IPs, MACs and egress port. These are written individually\nwhen requested. If the NFP tries to encapsulate a packet but does not know\nthe next hop, then is sends a request to the host. The host carries out a\nroute lookup and populates the given entry on the NFP table. A notifier\nalso exists to check for any links changing or going down in the kernel\nnext hop table. If an offloaded next hop entry is removed from the kernel\nthen it is also removed on the NFP.\n\nThe NFP periodically sends a message to the host telling it which tunnel\nports have packets egressing the system. The host uses this information to\nupdate the used value in the neighbour entry. This means that, rather than\nexpire when it times out, the kernel will send an ARP to check if the link\nis still live. From an NFP perspective, this means that valid entries will\nnot be removed from its next hop table.\n\nJohn Hurley (7):\n  nfp: add helper to get flower cmsg length\n  nfp: compile flower vxlan tunnel metadata match fields\n  nfp: compile flower vxlan tunnel set actions\n  nfp: offload flower vxlan endpoint MAC addresses\n  nfp: offload vxlan IPv4 endpoints of flower rules\n  nfp: flower vxlan neighbour offload\n  nfp: flower vxlan neighbour keep-alive\n\n drivers/net/ethernet/netronome/nfp/Makefile        |   3 +-\n drivers/net/ethernet/netronome/nfp/flower/action.c | 169 ++++-\n drivers/net/ethernet/netronome/nfp/flower/cmsg.c   |  16 +-\n drivers/net/ethernet/netronome/nfp/flower/cmsg.h   |  87 ++-\n drivers/net/ethernet/netronome/nfp/flower/main.c   |  13 +\n drivers/net/ethernet/netronome/nfp/flower/main.h   |  35 +\n drivers/net/ethernet/netronome/nfp/flower/match.c  |  75 +-\n .../net/ethernet/netronome/nfp/flower/metadata.c   |   2 +-\n .../net/ethernet/netronome/nfp/flower/offload.c    |  74 +-\n .../ethernet/netronome/nfp/flower/tunnel_conf.c    | 811 +++++++++++++++++++++\n 10 files changed, 1243 insertions(+), 42 deletions(-)\n create mode 100644 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c"}