From: Jakub Kicinski <kuba@kernel.org>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, willemb@google.com, lorenzo@google.com,
maze@google.com, dsahern@kernel.org, yoshfuji@linux-ipv6.org,
shuah@kernel.org, linux-kselftest@vger.kernel.org,
Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net-next 03/11] net: ping6: support setting socket options via cmsg
Date: Wed, 9 Feb 2022 16:36:41 -0800 [thread overview]
Message-ID: <20220210003649.3120861-4-kuba@kernel.org> (raw)
In-Reply-To: <20220210003649.3120861-1-kuba@kernel.org>
Minor reordering of the code and a call to sock_cmsg_send()
gives us support for setting the common socket options via
cmsg (the usual ones - SO_MARK, SO_TIMESTAMPING_OLD, SCM_TXTIME).
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
net/ipv6/ping.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
index 3228ccd8abf1..d5544cf67ffe 100644
--- a/net/ipv6/ping.c
+++ b/net/ipv6/ping.c
@@ -97,6 +97,14 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
(oif && sk->sk_bound_dev_if && oif != sk->sk_bound_dev_if))
return -EINVAL;
+ ipcm6_init_sk(&ipc6, np);
+ ipc6.sockc.tsflags = sk->sk_tsflags;
+ ipc6.sockc.mark = sk->sk_mark;
+
+ err = sock_cmsg_send(sk, msg, &ipc6.sockc);
+ if (err)
+ return err;
+
/* TODO: use ip6_datagram_send_ctl to get options from cmsg */
memset(&fl6, 0, sizeof(fl6));
@@ -105,15 +113,12 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
fl6.saddr = np->saddr;
fl6.daddr = *daddr;
fl6.flowi6_oif = oif;
- fl6.flowi6_mark = sk->sk_mark;
+ fl6.flowi6_mark = ipc6.sockc.mark;
fl6.flowi6_uid = sk->sk_uid;
fl6.fl6_icmp_type = user_icmph.icmp6_type;
fl6.fl6_icmp_code = user_icmph.icmp6_code;
security_sk_classify_flow(sk, flowi6_to_flowi_common(&fl6));
- ipcm6_init_sk(&ipc6, np);
- ipc6.sockc.mark = sk->sk_mark;
- ipc6.sockc.tsflags = sk->sk_tsflags;
fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel);
dst = ip6_sk_dst_lookup_flow(sk, &fl6, daddr, false);
--
2.34.1
next prev parent reply other threads:[~2022-02-10 1:59 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-10 0:36 [PATCH net-next 00/11] net: ping6: support basic socket cmsgs Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 01/11] net: ping6: remove a pr_debug() statement Jakub Kicinski
2022-02-10 5:30 ` David Ahern
2022-02-10 0:36 ` [PATCH net-next 02/11] net: ping6: support packet timestamping Jakub Kicinski
2022-02-10 0:44 ` Maciej Żenczykowski
2022-02-10 2:17 ` Jakub Kicinski
2022-02-10 5:30 ` David Ahern
2022-02-10 0:36 ` Jakub Kicinski [this message]
2022-02-10 5:30 ` [PATCH net-next 03/11] net: ping6: support setting socket options via cmsg David Ahern
2022-02-10 0:36 ` [PATCH net-next 04/11] selftests: net: rename cmsg_so_mark Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 05/11] selftests: net: make cmsg_so_mark ready for more options Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 06/11] selftests: net: cmsg_sender: support icmp and raw sockets Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 07/11] selftests: net: cmsg_so_mark: test ICMP and RAW sockets Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 08/11] selftests: net: cmsg_so_mark: test with SO_MARK set by setsockopt Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 09/11] selftests: net: cmsg_sender: support setting SO_TXTIME Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 10/11] selftests: net: cmsg_sender: support Tx timestamping Jakub Kicinski
2022-02-10 0:36 ` [PATCH net-next 11/11] selftests: net: test standard socket cmsgs across UDP and ICMP sockets Jakub Kicinski
2022-02-10 15:30 ` [PATCH net-next 00/11] net: ping6: support basic socket cmsgs patchwork-bot+netdevbpf
2022-02-10 16:08 ` Willem de Bruijn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220210003649.3120861-4-kuba@kernel.org \
--to=kuba@kernel.org \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=lorenzo@google.com \
--cc=maze@google.com \
--cc=netdev@vger.kernel.org \
--cc=shuah@kernel.org \
--cc=willemb@google.com \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).