From: Alexander Bluhm Subject: remove ip6_divert.h header file To: tech@openbsd.org Date: Sun, 22 Jun 2025 20:29:20 +0200 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? 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 #include #include -#include #endif /* INET6 */ #include 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 +#include #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 #include #include -#include #include #include #include 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 - * - * 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 -#include - -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_ */