Index | Thread | Search

From:
Vitaliy Makkoveev <mvs@openbsd.org>
Subject:
Re: remove ip6_divert.h header file
To:
Alexander Bluhm <bluhm@openbsd.org>
Cc:
tech@openbsd.org
Date:
Mon, 23 Jun 2025 12:04:12 +0300

Download raw body.

Thread
On Sun, Jun 22, 2025 at 08:29:20PM +0200, Alexander Bluhm wrote:
> Hi,
> 
> All redundant code for IPv6 divert has been removed or merged into
> ip_divert.c.  What remains is the ip6_divert.h header file.  Sysctl
> does not exists anymore, the leftover is #ifdef _KERNEL.  The few
> IPv6 specific declatation can easily be moved into ip_divert.h and
> the header deleted.
> 
> ok?
> 

ok mvs

> bluhm
> 
> Index: net/pf.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/net/pf.c,v
> diff -u -p -r1.1213 pf.c
> --- net/pf.c	9 Jun 2025 20:34:08 -0000	1.1213
> +++ net/pf.c	21 Jun 2025 22:18:26 -0000
> @@ -84,7 +84,6 @@
>  #include <netinet6/ip6_var.h>
>  #include <netinet/icmp6.h>
>  #include <netinet6/nd6.h>
> -#include <netinet6/ip6_divert.h>
>  #endif /* INET6 */
>  
>  #include <net/pfvar.h>
> Index: netinet/ip_divert.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_divert.c,v
> diff -u -p -r1.105 ip_divert.c
> --- netinet/ip_divert.c	6 Jun 2025 13:13:37 -0000	1.105
> +++ netinet/ip_divert.c	21 Jun 2025 22:21:29 -0000
> @@ -313,8 +313,7 @@ divert_send(struct socket *so, struct mb
>  }
>  
>  int
> -divert_sysctl_divstat(struct cpumem *cpucounters, void *oldp, size_t *oldlenp,
> -    void *newp)
> +divert_sysctl_divstat(void *oldp, size_t *oldlenp, void *newp)
>  {
>  	uint64_t counters[divs_ncounters];
>  	struct divstat divstat;
> @@ -323,7 +322,7 @@ divert_sysctl_divstat(struct cpumem *cpu
>  
>  	CTASSERT(sizeof(divstat) == (nitems(counters) * sizeof(u_long)));
>  	memset(&divstat, 0, sizeof divstat);
> -	counters_read(cpucounters, counters, nitems(counters), NULL);
> +	counters_read(divcounters, counters, nitems(counters), NULL);
>  
>  	for (i = 0; i < nitems(counters); i++)
>  		words[i] = (u_long)counters[i];
> @@ -345,8 +344,7 @@ divert_sysctl(int *name, u_int namelen, 
>  
>  	switch (name[0]) {
>  	case DIVERTCTL_STATS:
> -		return (divert_sysctl_divstat(divcounters, oldp, oldlenp,
> -		    newp));
> +		return (divert_sysctl_divstat(oldp, oldlenp, newp));
>  	default:
>  		return (sysctl_bounded_arr(divertctl_vars,
>  		    nitems(divertctl_vars), name, namelen, oldp, oldlenp,
> Index: netinet/ip_divert.h
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_divert.h,v
> diff -u -p -r1.29 ip_divert.h
> --- netinet/ip_divert.h	18 Jun 2025 17:45:07 -0000	1.29
> +++ netinet/ip_divert.h	21 Jun 2025 22:21:43 -0000
> @@ -69,18 +69,25 @@ divstat_inc(enum divstat_counters c)
>  
>  extern u_int divert_sendspace;
>  extern u_int divert_recvspace;
> -extern struct inpcbtable divbtable;
> -extern const struct pr_usrreqs divert_usrreqs;
> +extern struct inpcbtable divbtable, divb6table;
> +extern const struct pr_usrreqs divert_usrreqs, divert6_usrreqs;
>  
>  void	 divert_init(void);
>  void	 divert_packet(struct mbuf *, int, u_int16_t);
>  int	 divert_sysctl(int *, u_int, void *, size_t *, void *, size_t);
> -int	 divert_sysctl_divstat(struct cpumem *, void *, size_t *, void *);
> +int	 divert_sysctl_divstat(void *, size_t *, void *);
>  int	 divert_attach(struct socket *, int, int);
>  int	 divert_detach(struct socket *);
>  int	 divert_bind(struct socket *, struct mbuf *, struct proc *);
>  int	 divert_shutdown(struct socket *);
>  int	 divert_send(struct socket *, struct mbuf *, struct mbuf *,
>  	     struct mbuf *);
> +
> +void	 divert6_init(void);
> +void	 divert6_packet(struct mbuf *, int, u_int16_t);
> +int	 divert6_attach(struct socket *, int, int);
> +int	 divert6_send(struct socket *, struct mbuf *, struct mbuf *,
> +	     struct mbuf *);
> +
>  #endif /* _KERNEL */
>  #endif /* _IP_DIVERT_H_ */
> Index: netinet6/in6_proto.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6_proto.c,v
> diff -u -p -r1.131 in6_proto.c
> --- netinet6/in6_proto.c	21 Jun 2025 22:08:44 -0000	1.131
> +++ netinet6/in6_proto.c	21 Jun 2025 22:18:54 -0000
> @@ -106,7 +106,7 @@
>  
>  #include "pf.h"
>  #if NPF > 0
> -#include <netinet6/ip6_divert.h>
> +#include <netinet/ip_divert.h>
>  #endif
>  
>  #include "etherip.h"
> Index: netinet6/ip6_divert.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/ip6_divert.c,v
> diff -u -p -r1.106 ip6_divert.c
> --- netinet6/ip6_divert.c	21 Jun 2025 22:08:44 -0000	1.106
> +++ netinet6/ip6_divert.c	21 Jun 2025 22:19:00 -0000
> @@ -37,7 +37,6 @@
>  #include <netinet6/ip6_var.h>
>  #include <netinet/in_pcb.h>
>  #include <netinet/ip_divert.h>
> -#include <netinet6/ip6_divert.h>
>  #include <netinet/tcp.h>
>  #include <netinet/udp.h>
>  #include <netinet/icmp6.h>
> Index: netinet6/ip6_divert.h
> ===================================================================
> RCS file: netinet6/ip6_divert.h
> diff -N netinet6/ip6_divert.h
> --- netinet6/ip6_divert.h	21 Jun 2025 22:08:44 -0000	1.26
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,53 +0,0 @@
> -/*      $OpenBSD: ip6_divert.h,v 1.26 2025/06/21 22:08:44 bluhm Exp $ */
> -
> -/*
> - * Copyright (c) 2009 Michele Marchetto <michele@openbsd.org>
> - *
> - * Permission to use, copy, modify, and distribute this software for any
> - * purpose with or without fee is hereby granted, provided that the above
> - * copyright notice and this permission notice appear in all copies.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
> - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
> - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
> - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
> - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> - */
> -
> -#ifndef _IP6_DIVERT_H_
> -#define _IP6_DIVERT_H_
> -
> -/*
> - * Names for divert sysctl objects
> - */
> -#define	DIVERT6CTL_RECVSPACE	1	/* receive buffer space */
> -#define	DIVERT6CTL_SENDSPACE	2	/* send buffer space */
> -#define	DIVERT6CTL_STATS	3	/* divert statistics */
> -#define	DIVERT6CTL_MAXID	4
> -
> -#define	DIVERT6CTL_NAMES { \
> -	{ 0, 0 }, \
> -	{ NULL,	0 }, \
> -	{ NULL,	0 }, \
> -	{ NULL,	0 } \
> -}
> -
> -#ifdef _KERNEL
> -
> -#include <sys/percpu.h>
> -#include <netinet/ip_divert.h>
> -
> -extern struct	inpcbtable	divb6table;
> -
> -extern const struct pr_usrreqs divert6_usrreqs;
> -
> -void	 divert6_init(void);
> -void	 divert6_packet(struct mbuf *, int, u_int16_t);
> -int	 divert6_attach(struct socket *, int, int);
> -int	 divert6_send(struct socket *, struct mbuf *, struct mbuf *,
> -	     struct mbuf *);
> -#endif /* _KERNEL */
> -
> -#endif /* _IP6_DIVERT_H_ */
>