Applied, thanks! [email protected], le dim. 31 mai 2026 15:34:30 -0300, a ecrit: > From: Diego Nieto Cid <[email protected]> > > This patch adds support for UDP packet timestamping only when > both SO_TIMESTAMP and SCM_TIMESTAMP are defined. > > * pfinet/linux-src/include/net/sock.h: add timestamp flag > > * pfinet/linux-src/net/core/sock.c: modify sock_*sockopt to set > and query the timestamp flag. > > * pfinet/linux-src/net/ipv4/udp.c: call put_cmsg in udp_recvmsg > to write the packet timestamp to the message anciliary data. > --- > pfinet/linux-src/include/net/sock.h | 3 +++ > pfinet/linux-src/net/core/sock.c | 10 ++++++++++ > pfinet/linux-src/net/ipv4/udp.c | 5 +++++ > 3 files changed, 18 insertions(+) > > diff --git a/pfinet/linux-src/include/net/sock.h > b/pfinet/linux-src/include/net/sock.h > index 5c4444d1..435f8870 100644 > --- a/pfinet/linux-src/include/net/sock.h > +++ b/pfinet/linux-src/include/net/sock.h > @@ -411,6 +411,9 @@ struct sock { > broadcast, > bsdism; > unsigned char debug; > +#if defined(SO_TIMESTAMP) && defined(SCM_TIMESTAMP) > + unsigned char timestamp; > +#endif > int proc; > unsigned long lingertime; > > diff --git a/pfinet/linux-src/net/core/sock.c > b/pfinet/linux-src/net/core/sock.c > index c47c935b..5ab7d840 100644 > --- a/pfinet/linux-src/net/core/sock.c > +++ b/pfinet/linux-src/net/core/sock.c > @@ -191,6 +191,11 @@ int sock_setsockopt(struct socket *sock, int level, int > optname, > else > sk->debug=valbool; > break; > +#if defined(SO_TIMESTAMP) && defined(SCM_TIMESTAMP) > + case SO_TIMESTAMP: > + sk->timestamp = valbool; > + break; > +#endif > case SO_REUSEADDR: > sk->reuse = valbool; > break; > @@ -384,6 +389,11 @@ int sock_getsockopt(struct socket *sock, int level, int > optname, > case SO_DEBUG: > v.val = sk->debug; > break; > +#if defined(SO_TIMESTAMP) && defined(SCM_TIMESTAMP) > + case SO_TIMESTAMP: > + v.val = sk->timestamp; > + break; > +#endif > > case SO_DONTROUTE: > v.val = sk->localroute; > diff --git a/pfinet/linux-src/net/ipv4/udp.c b/pfinet/linux-src/net/ipv4/udp.c > index c1da9886..52bae18e 100644 > --- a/pfinet/linux-src/net/ipv4/udp.c > +++ b/pfinet/linux-src/net/ipv4/udp.c > @@ -813,6 +813,11 @@ int udp_recvmsg(struct sock *sk, struct msghdr *msg, int > len, > msg->msg_flags |= MSG_TRUNC; > } > > +#if defined(SO_TIMESTAMP) && defined(SCM_TIMESTAMP) > + if (sk->timestamp) > + put_cmsg(msg, SOL_SOCKET, SCM_TIMESTAMP, sizeof(skb->stamp), > &skb->stamp); > +#endif > + > #ifndef CONFIG_UDP_DELAY_CSUM > err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov, > copied); > -- > 2.53.0 > >
-- Samuel <L> pour moi le seul qui est autorisé à fasciser, c moi :-)
