From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EECD129346E for ; Mon, 30 Jun 2025 17:17:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751303861; cv=none; b=hyw4KckGRZjqS0rqgr6ac6K5rsDOK13Uvk7H7NoY3PEx3M7rQ4C5m1PMS5iZgH4zhDSMa9vRraF3Y6qDk03aWznHy3OzlXtJiBjU1XoWtHCCUlTa8w7gqvTPeFdToaCSCbhRIr2NQX002GSu0VHRG2lwCv1AKCy+2X/B+P/4jNU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751303861; c=relaxed/simple; bh=8znAfQ1IP5+4ZLJ0094gbfhffGuzbrK/6tpSUK5ZSgI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bZEnI+gylpSUE99iBH2ZXCEcwIe438nHsViNuy06QHFUvf6Jfc7J1iKBbwAJf7osQdXisVKYCNfmDrxMIrsDcc2Bog2r6EXXmVlayxc46di0TFBMcglCcARiq1CkNr1FhrS0vbJE2rM7BKfRpKG9xQEJmxR+K80mBgIN8wBs7Bs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=jrife.io; spf=none smtp.mailfrom=jrife.io; dkim=pass (2048-bit key) header.d=jrife-io.20230601.gappssmtp.com header.i=@jrife-io.20230601.gappssmtp.com header.b=zEgovvxj; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=jrife.io Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=jrife.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=jrife-io.20230601.gappssmtp.com header.i=@jrife-io.20230601.gappssmtp.com header.b="zEgovvxj" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-74930faca46so160382b3a.0 for ; Mon, 30 Jun 2025 10:17:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jrife-io.20230601.gappssmtp.com; s=20230601; t=1751303859; x=1751908659; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hEMTgxL0uwtqGX7Eiy7dFlITzxO3HjkYHcIu9b6MYOw=; b=zEgovvxjOg6xufJmTA+OwRvNoxE6AwTwUGzhS7qoFoEwihbsmWQqAgf3KosUBrfzMV oM5dWzq2zj3ib/Jr5yGexvOAEqtXnIel+oJeXgaRoNTtQkUoZMzGKvxb4U87wJbnwaEi Kw/ITvDsVBf9rb9vX/fs/W3ealhOgzkeoMQWLqJyDkEawLTrG7wR3pteauzluACwDVym 4GUHoqK5HOB/J4Uo2oQop1gFwR3siVZyOPXBKo3/A31e+iNM4KHyJzfRZjdoqj1BJe0N K+a/nnGE1BdYeoZOoWZMnz1mu0SHcOeQRtRprUEOkaMMbUpCAVm6NLJ1m3wiYyZ7Ox4N 0zeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751303859; x=1751908659; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hEMTgxL0uwtqGX7Eiy7dFlITzxO3HjkYHcIu9b6MYOw=; b=nqbrTAJnJSCQUavgVrjoJOZuRKflZwcYXMvzMOf+cGP6/9xPfqsZTIFmZe8MjqidoG 3ew8y7mfMaCH/sOdHntQd3zHzbJO4mE9xJQuFUV7ys6d4+xXhkWWRYkSgQ+5ddvBzbmV rXLz+R4xVwM+EHWzlpOF92uZnecW13x0A4wpO9Pd2aBjq0+AmjNnyVL7DZRQIofeCbZR R0BCtNK6C7EFhH/Pm4lY54Wb2RTmwLIVylpWAgmbl0fIdQXyVtXQB4+aYE9fyA5OtphZ rlHa4E7WkXRtHcZHBJ4IT0wHCVGqdp+0Uzz3eya/pfZpGryl6HgBSeu0IfiIfrkDnrTt w+ww== X-Gm-Message-State: AOJu0YxPbskFDkUZ6A+Q54Xz5hQa9PmpCofx7H9kfsg7H7eXeWMmAIjb ZN1vlWYhkKyD3gnAsut21Ue2Ou81lsi9RWdHUP/kgrLP7SjvZyvSlw9S8bqd6FxH20Qr1M9cs+6 z/NuaOrY= X-Gm-Gg: ASbGncvBwbkXJsATAs8qRTbl4LmaXNouqdBZWiOJluLXsQnTF1zChwMR9N9vB35zNX4 3MQmWP5NiQv9LUPYoIlbpk3hgeBhCZgFM9WkLVWDtB8fLRgTy1p4aw3uPXnJad3JC4fg5dIgNna khms2+C4gZ6rKykyVeDB5gr8AYu/+AOaJN6QXH1iBhIx1voNi3t1YKbA5YudrkAubaA2+Q9tN7x cOzMeFcPuyV/JEZXvUQGTVAt5y+lzcKMnzsfIrHQhniWB6uXnZzhnLuikjRFcPuaP0aWWSyrEPu bnbnqYiLgh8OJiGr0NYRMgJHsVNrSH62cxKeRZLHDxET68e+kw== X-Google-Smtp-Source: AGHT+IGMEDSPsMdnGGSTEFA1kYD3IGgEojzA39m5jeY9ZXFm/f7TM/AlTi8Vl7eLjaYxq3I2/cjaYg== X-Received: by 2002:a05:6a00:b21:b0:739:b1df:2bf1 with SMTP id d2e1a72fcca58-74b0a675951mr3716367b3a.5.1751303858929; Mon, 30 Jun 2025 10:17:38 -0700 (PDT) Received: from t14.. ([2a00:79e1:abc:133:9ab8:319d:a54b:9f64]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74af540a846sm9229232b3a.31.2025.06.30.10.17.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 10:17:38 -0700 (PDT) From: Jordan Rife To: netdev@vger.kernel.org, bpf@vger.kernel.org Cc: Jordan Rife , Daniel Borkmann , Martin KaFai Lau , Willem de Bruijn , Kuniyuki Iwashima , Alexei Starovoitov , Stanislav Fomichev Subject: [PATCH v3 bpf-next 11/12] selftests/bpf: Create iter_tcp_destroy test program Date: Mon, 30 Jun 2025 10:17:04 -0700 Message-ID: <20250630171709.113813-12-jordan@jrife.io> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250630171709.113813-1-jordan@jrife.io> References: <20250630171709.113813-1-jordan@jrife.io> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Prepare for bucket resume tests for established TCP sockets by creating a program to immediately destroy and remove sockets from the TCP ehash table, since close() is not deterministic. Signed-off-by: Jordan Rife --- .../selftests/bpf/progs/sock_iter_batch.c | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/testing/selftests/bpf/progs/sock_iter_batch.c b/tools/testing/selftests/bpf/progs/sock_iter_batch.c index a36361e4a5de..14513aa77800 100644 --- a/tools/testing/selftests/bpf/progs/sock_iter_batch.c +++ b/tools/testing/selftests/bpf/progs/sock_iter_batch.c @@ -70,6 +70,28 @@ int iter_tcp_soreuse(struct bpf_iter__tcp *ctx) return 0; } +int bpf_sock_destroy(struct sock_common *sk) __ksym; +volatile const __u64 destroy_cookie; + +SEC("iter/tcp") +int iter_tcp_destroy(struct bpf_iter__tcp *ctx) +{ + struct sock_common *sk_common = (struct sock_common *)ctx->sk_common; + __u64 sock_cookie; + + if (!sk_common) + return 0; + + sock_cookie = bpf_get_socket_cookie(sk_common); + if (sock_cookie != destroy_cookie) + return 0; + + bpf_sock_destroy(sk_common); + bpf_seq_write(ctx->meta->seq, &sock_cookie, sizeof(sock_cookie)); + + return 0; +} + #define udp_sk(ptr) container_of(ptr, struct udp_sock, inet.sk) SEC("iter/udp") -- 2.43.0