From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_PASS,USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B37EC43387 for ; Fri, 18 Jan 2019 00:41:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1AD1320873 for ; Fri, 18 Jan 2019 00:41:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="ri4aDazI" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726366AbfARAlL (ORCPT ); Thu, 17 Jan 2019 19:41:11 -0500 Received: from mail-io1-f73.google.com ([209.85.166.73]:53569 "EHLO mail-io1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725982AbfARAlL (ORCPT ); Thu, 17 Jan 2019 19:41:11 -0500 Received: by mail-io1-f73.google.com with SMTP id t133so8811799iof.20 for ; Thu, 17 Jan 2019 16:41:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=k7TWLdbBTo6jXGUIY/VIB8gFh42N3OpsGTQMTEOikhM=; b=ri4aDazID+IA15oaFmv3biovBre0sVxg24XT0i3Thw6VCwdKWiZn/TG/0xyw3Zm7pn Tl4TGntjQT3GtsQIvALZz0/GLzMm4JQIyN/YtYfa2sKXwkB3vypy0CtveVJ0oPJiT39w k+qMd/q+lKvVZmprPFBHtvlVXcEmnMINabmN7wGb9JIM3BKnwsy/4OCZioZnSg7kX38i WEAVb3v1ofce8UuyT1kmC4aaceE0RWR3uG76bFT91kMyDBxbJi2qGTM/+Y8+D1oNfwdO EjLYHGOtoG+gsvq9zWwImvHhDQojED/gCW5SRkk4tN8lurv6s1ASJyU8d+BkXN/eDB+o mF/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=k7TWLdbBTo6jXGUIY/VIB8gFh42N3OpsGTQMTEOikhM=; b=HtrXPPekWLmzWcnyhV+3q72OWsIK9+bh4ofuRBpX9vWip/qvekSSXk+J6TPavmVvXK jsKy8EhECd7mDgYq8ON3KYFIBBGtQO+roIhERSyJVCF/q9Fqo6NvfglfNnNF+UowQOGV UaxR6HSUURBJpKE93AOLmRRwX1hDf8NFYdOK4pHc6qqCQEDaJ4y2SUpixOcqdwLiJm4S xvZCW0dSQIAuyp2i63Uv+It50sBBX1ueszEM3tpS/yNpI2xUBfiUmIKiSwYXRiTEZVeM BBvJnWrahbCsQ1BtQrZoLEbtEm+1UJlwXxVHHCJrTr6boMf9yOtqiNFbSleninNu6Abb HdMA== X-Gm-Message-State: AJcUukdEMBPyEtxKmhmYT6bSa6vcPZEU3ZIBJ78Tw75ei+7e57QE3y4B wxWZgHRwzCXH6HzGVirSrkywgSmqk8vxe0/6TplmlZQUW+eOjVd7lieRtat3wO6Y0A9RanWB1p7 lE3D20Jq8wL8papx80ODif3+nTIdVTQ4V49u0BKrarwFIhXT7zcmQhg== X-Google-Smtp-Source: ALg8bN6BjdEc78keedxk2gt1LVPDU6cZmaTRTS+ZiZ5Yp4yue8ZLOwazlvEhOyk7PLh03JFFBChbCb8= X-Received: by 2002:a24:2c43:: with SMTP id i64mr10734958iti.2.1547772070419; Thu, 17 Jan 2019 16:41:10 -0800 (PST) Date: Thu, 17 Jan 2019 16:41:01 -0800 Message-Id: <20190118004106.163825-1-sdf@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.20.1.321.g9e740568ce-goog Subject: [PATCH bpf-next 0/5] add bpf cgroup hooks that trigger on socket close From: Stanislav Fomichev To: netdev@vger.kernel.org Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, Stanislav Fomichev Content-Type: text/plain; charset="UTF-8" Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Currently, we have BPF_CGROUP_INET_SOCK_CREATE hook that triggers on socket creation and there is no way to know when the socket is being closed. Add new set of hooks BPF_CGROUP_INET{4,6}_SOCK_RELEASE that trigger when the socket is closed. Initial intended usecase is to cleanup statistics after POST{4,6}_BIND. Hooks have read-only access to all fields of struct bpf_sock. First patch adds hooks, the rest of the patches add uapi and tests to make sure these hooks work. Stanislav Fomichev (5): bpf: add BPF_CGROUP_INET{4,6}_SOCK_RELEASE hooks tools: bpf: support BPF_CGROUP_INET{4,6}_SOCK_RELEASE in libbpf/bpftool selftests/bpf: add BPF_CGROUP_INET{4,6}_SOCK_RELEASE to test_section_names.c selftests/bpf: add BPF_CGROUP_INET{4,6}_SOCK_RELEASE to test_sock.c selftests/bpf: add BPF_CGROUP_INET{4,6}_SOCK_RELEASE to test_sock_addr.c include/linux/bpf-cgroup.h | 6 + include/net/inet_common.h | 1 + include/uapi/linux/bpf.h | 2 + kernel/bpf/syscall.c | 8 ++ net/core/filter.c | 7 + net/ipv4/af_inet.c | 13 +- net/ipv6/af_inet6.c | 5 +- tools/bpf/bpftool/cgroup.c | 2 + tools/include/uapi/linux/bpf.h | 2 + tools/lib/bpf/libbpf.c | 4 + .../selftests/bpf/test_section_names.c | 10 ++ tools/testing/selftests/bpf/test_sock.c | 119 ++++++++++++++++ tools/testing/selftests/bpf/test_sock_addr.c | 131 +++++++++++++++++- 13 files changed, 307 insertions(+), 3 deletions(-) -- 2.20.1.321.g9e740568ce-goog