From nobody Wed Jun 25 10:12:29 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bRyL60ZxKz5yqd1; Wed, 25 Jun 2025 10:12:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bRyL56xy4z3cmV; Wed, 25 Jun 2025 10:12:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750846350; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=poZByz2sOkC/UUe53ZvPXEYKLZx60oSMS6JZlwFEzHQ=; b=DFhGWmkWOdAAQ+E0eHFzRoMmfIvFMDZDx7f36Hl0af16dDU7msh/XeULbDz5rbueYZusrx Z+5NiWaGfymKI0lu3ImBfceHlpPYM1UcBMUzJz0+0GIes7sdcnM15DW2bsAz8f3dsscO5/ cpy1WzjaaVY3cK+J06uvSLk2I3V1Ezu3gRuFV+50mDCOcdKJ1XLokcYB7tYTAZziCYEt9e K0lL249uFVlH87ogHKKmGLWnJNJD5I6G2Uj2sAoc1x6WWjw2+WJO7mlGF5BuMy9CJ7mRfP UnApwlEpRc98DxvQSG+5ohyh/POJbYnUR46OzJRPPZM40eymOJ6NNDhjOeAwjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750846350; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=poZByz2sOkC/UUe53ZvPXEYKLZx60oSMS6JZlwFEzHQ=; b=w5JXSn2baTeAfI8ZksFcNq6nU9tevnUpNHsirw73NwwSaIH2mltGGNl1tiVyPZJ3JY2VlA chdfhY/RPINgcb0rdz+fdXU6PUQXqc+YAsY+RilUu+q2WTO5s7+hNJO/kmHcL1JljhioKN cN+LDHVzHhV1EzZ4+XsVJNvzpn5ypEgz0SI6d7k2MN+el4rB4RadOxZ3hbh77jN83hSsav bQDhDRwWbJyjN3NbfPicyhvT/u2bWwul9bwNR1OG2GojZMMr4AOhNxkRkmtPXQQ6pr96k8 c+KpWh1EAB0eKos64WTFqU2de8zt2eMkr8sGPJYMY8psFxHQ4QT+K/hdL+q0pw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1750846350; a=rsa-sha256; cv=none; b=UpuNY/DUxxcn72ZCIKZME5hBHlBcwbCeqn4T36R6cyJi4/X5VT+/OfpsENHI7YPkOZwaZa /z1iNOXcPqOTh6VWBmK3v3p1NfjdJ+Ny6FOVKKyrlnsysCb5HLldZs0mFCuZUPmOfP70iu OIEuGWolmyys5jyW30WcErVBoZvb2V63sZMrrhkcWzhx0sGwTrUss/J3Wtxvhij2jvg101 zbfsKEsaZh6zQ/lcw3mKe6TTYj3GloiMwSUXqSZA2rGgWd6zOo2x7ho+ElhVI2N6ViYyl0 KNBxYL56xf2m7hSxTSpExEEflO+Y/IvvvJ3GdjbxUx4LCF/T5g/Qyskcv81bWw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bRyL56Jzgz1RtF; Wed, 25 Jun 2025 10:12:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 55PACTWZ069989; Wed, 25 Jun 2025 10:12:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55PACTxE069986; Wed, 25 Jun 2025 10:12:29 GMT (envelope-from git) Date: Wed, 25 Jun 2025 10:12:29 GMT Message-Id: <202506251012.55PACTxE069986@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: d86c5811cdb3 - main - ng_ksocket: Add tests for IPv6 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d86c5811cdb384b3ba565187f8dc7e7e51b6466e Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d86c5811cdb384b3ba565187f8dc7e7e51b6466e commit d86c5811cdb384b3ba565187f8dc7e7e51b6466e Author: Seyed Pouria Mousavizadeh Tehrani AuthorDate: 2025-06-25 07:31:59 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-06-25 10:12:11 +0000 ng_ksocket: Add tests for IPv6 Add udp6_connect and udp6_bind for ng_ksocket Differential Revision: https://reviews.freebsd.org/D50111 --- tests/sys/netgraph/ksocket.c | 86 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 74 insertions(+), 12 deletions(-) diff --git a/tests/sys/netgraph/ksocket.c b/tests/sys/netgraph/ksocket.c index d3ea5ca2876e..a60c17bd337f 100644 --- a/tests/sys/netgraph/ksocket.c +++ b/tests/sys/netgraph/ksocket.c @@ -50,23 +50,23 @@ hellocheck(int wr, int rd) ATF_TC_WITHOUT_HEAD(udp_connect); ATF_TC_BODY(udp_connect, tc) { + struct ngm_mkpeer mkp = { + .type = NG_KSOCKET_NODE_TYPE, + .ourhook = OURHOOK, + .peerhook = "inet/dgram/udp", + }; struct sockaddr_in sin = { .sin_family = AF_INET, .sin_addr.s_addr = htonl(INADDR_LOOPBACK), .sin_len = sizeof(sin), }; socklen_t slen = sizeof(sin); - int ds, cs, us; + int cs, ds, us; ATF_REQUIRE((us = socket(PF_INET, SOCK_DGRAM, 0)) > 0); ATF_REQUIRE(bind(us, (struct sockaddr *)&sin, sizeof(sin)) == 0); ATF_REQUIRE(getsockname(us, (struct sockaddr *)&sin, &slen) == 0); - struct ngm_mkpeer mkp = { - .type = NG_KSOCKET_NODE_TYPE, - .ourhook = OURHOOK, - .peerhook = "inet/dgram/udp", - }; ATF_REQUIRE(NgMkSockNode(NULL, &cs, &ds) == 0); ATF_REQUIRE(NgSendMsg(cs, ".", NGM_GENERIC_COOKIE, NGM_MKPEER, &mkp, sizeof(mkp)) >= 0); @@ -79,19 +79,19 @@ ATF_TC_BODY(udp_connect, tc) ATF_TC_WITHOUT_HEAD(udp_bind); ATF_TC_BODY(udp_bind, tc) { + struct ngm_mkpeer mkp = { + .type = NG_KSOCKET_NODE_TYPE, + .ourhook = OURHOOK, + .peerhook = "inet/dgram/udp", + }; struct sockaddr_in sin = { .sin_family = AF_INET, .sin_addr.s_addr = htonl(INADDR_LOOPBACK), .sin_len = sizeof(sin), }; struct ng_mesg *rep; - int ds, cs, us; + int cs, ds, us; - struct ngm_mkpeer mkp = { - .type = NG_KSOCKET_NODE_TYPE, - .ourhook = OURHOOK, - .peerhook = "inet/dgram/udp", - }; ATF_REQUIRE(NgMkSockNode(NULL, &cs, &ds) == 0); ATF_REQUIRE(NgSendMsg(cs, ".", NGM_GENERIC_COOKIE, NGM_MKPEER, &mkp, sizeof(mkp)) >= 0); @@ -109,10 +109,72 @@ ATF_TC_BODY(udp_bind, tc) hellocheck(us, ds); } +ATF_TC_WITHOUT_HEAD(udp6_connect); +ATF_TC_BODY(udp6_connect, tc) +{ + struct ngm_mkpeer mkp = { + .type = NG_KSOCKET_NODE_TYPE, + .ourhook = OURHOOK, + .peerhook = "inet6/dgram/udp6", + }; + struct sockaddr_in6 sin6 = { + .sin6_family = AF_INET6, + }; + socklen_t slen = sizeof(sin6); + int cs, ds, us; + + ATF_REQUIRE((us = socket(PF_INET6, SOCK_DGRAM, 0)) > 0); + ATF_REQUIRE(bind(us, (struct sockaddr *)&sin6, sizeof(sin6)) == 0); + ATF_REQUIRE(getsockname(us, (struct sockaddr *)&sin6, &slen) == 0); + + ATF_REQUIRE(NgMkSockNode(NULL, &cs, &ds) == 0); + ATF_REQUIRE(NgSendMsg(cs, ".", NGM_GENERIC_COOKIE, NGM_MKPEER, &mkp, + sizeof(mkp)) >= 0); + ATF_REQUIRE(NgSendMsg(cs, ".:" OURHOOK, NGM_KSOCKET_COOKIE, + NGM_KSOCKET_CONNECT, &sin6, sizeof(sin6)) >= 0); + + hellocheck(ds, us); +} + + +ATF_TC_WITHOUT_HEAD(udp6_bind); +ATF_TC_BODY(udp6_bind, tc) +{ + struct ngm_mkpeer mkp = { + .type = NG_KSOCKET_NODE_TYPE, + .ourhook = OURHOOK, + .peerhook = "inet6/dgram/udp6", + }; + struct sockaddr_in6 sin6 = { + .sin6_family = AF_INET6, + .sin6_len = sizeof(sin6), + }; + struct ng_mesg *rep; + int cs, ds, us; + + ATF_REQUIRE(NgMkSockNode(NULL, &cs, &ds) == 0); + ATF_REQUIRE(NgSendMsg(cs, ".", NGM_GENERIC_COOKIE, NGM_MKPEER, &mkp, + sizeof(mkp)) >= 0); + ATF_REQUIRE(NgSendMsg(cs, ".:" OURHOOK, NGM_KSOCKET_COOKIE, + NGM_KSOCKET_BIND, &sin6, sizeof(sin6)) >= 0); + ATF_REQUIRE(NgSendMsg(cs, ".:" OURHOOK, NGM_KSOCKET_COOKIE, + NGM_KSOCKET_GETNAME, NULL, 0) >= 0); + ATF_REQUIRE(NgAllocRecvMsg(cs, &rep, NULL) == sizeof(struct ng_mesg) + + sizeof(struct sockaddr_in6)); + + ATF_REQUIRE((us = socket(PF_INET6, SOCK_DGRAM, 0)) > 0); + ATF_REQUIRE(connect(us, (struct sockaddr *)rep->data, + sizeof(struct sockaddr_in6)) == 0); + + hellocheck(us, ds); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, udp_connect); ATF_TP_ADD_TC(tp, udp_bind); + ATF_TP_ADD_TC(tp, udp6_connect); + ATF_TP_ADD_TC(tp, udp6_bind); return (atf_no_error()); }