Page MenuHomeFreeBSD

D36124.diff
No OneTemporary

D36124.diff

Index: ObsoleteFiles.inc
===================================================================
--- ObsoleteFiles.inc
+++ ObsoleteFiles.inc
@@ -52,6 +52,9 @@
# xargs -n1 | sort | uniq -d;
# done
+# 202208XX: raw socket layer removed
+OLD_FILES+=usr/include/net/raw_cb.h
+
# 20220721: libnv version bumps
OLD_LIBS+=lib/libnv.so.0
Index: sys/conf/files
===================================================================
--- sys/conf/files
+++ sys/conf/files
@@ -4163,8 +4163,6 @@
net/debugnet_inet.c optional inet debugnet
net/pfil.c optional ether | inet
net/radix.c standard
-net/raw_cb.c standard
-net/raw_usrreq.c standard
net/route.c standard
net/route/mpath_ctl.c optional route_mpath
net/route/nhgrp.c optional route_mpath
Index: sys/net/raw_cb.h
===================================================================
--- sys/net/raw_cb.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1980, 1986, 1993
- * The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)raw_cb.h 8.1 (Berkeley) 6/10/93
- * $FreeBSD$
- */
-
-#ifndef _NET_RAW_CB_H_
-#define _NET_RAW_CB_H_
-
-#include <sys/queue.h>
-
-/*
- * Raw protocol interface control block. Used to tie a socket to the generic
- * raw interface.
- */
-struct rawcb {
- LIST_ENTRY(rawcb) list;
- struct socket *rcb_socket; /* back pointer to socket */
- struct sockproto rcb_proto; /* protocol family, protocol */
-};
-
-#define sotorawcb(so) ((struct rawcb *)(so)->so_pcb)
-
-/*
- * Nominal space allocated to a raw socket.
- */
-#define RAWSNDQ 8192
-#define RAWRCVQ 8192
-
-#ifdef _KERNEL
-VNET_DECLARE(LIST_HEAD(rawcb_list_head, rawcb), rawcb_list);
-#define V_rawcb_list VNET(rawcb_list)
-
-extern struct mtx rawcb_mtx;
-
-/*
- * Generic protosw entries for raw socket protocols.
- */
-pr_ctlinput_t raw_ctlinput;
-
-/*
- * Library routines for raw socket usrreq functions; will always be wrapped
- * so that protocol-specific functions can be handled.
- */
-typedef int (*raw_input_cb_fn)(struct mbuf *, struct sockproto *,
- struct sockaddr *, struct rawcb *);
-
-int raw_attach(struct socket *, int);
-void raw_detach(struct rawcb *);
-void raw_input(struct mbuf *, struct sockproto *, struct sockaddr *);
-void raw_input_ext(struct mbuf *, struct sockproto *, struct sockaddr *,
- raw_input_cb_fn);
-
-/*
- * Generic pr_usrreqs entries for raw socket protocols, usually wrapped so
- * that protocol-specific functions can be handled.
- */
-extern struct pr_usrreqs raw_usrreqs;
-#endif
-
-#endif
Index: sys/net/raw_cb.c
===================================================================
--- sys/net/raw_cb.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1980, 1986, 1993
- * The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)raw_cb.c 8.1 (Berkeley) 6/10/93
- * $FreeBSD$
- */
-
-#include <sys/param.h>
-#include <sys/domain.h>
-#include <sys/lock.h>
-#include <sys/kernel.h>
-#include <sys/malloc.h>
-#include <sys/mutex.h>
-#include <sys/protosw.h>
-#include <sys/socket.h>
-#include <sys/socketvar.h>
-#include <sys/sysctl.h>
-#include <sys/systm.h>
-
-#include <net/if.h>
-#include <net/vnet.h>
-#include <net/raw_cb.h>
-
-/*
- * Routines to manage the raw protocol control blocks.
- *
- * TODO:
- * hash lookups by protocol family/protocol + address family
- * take care of unique address problems per AF?
- * redo address binding to allow wildcards
- */
-
-struct mtx rawcb_mtx;
-VNET_DEFINE(struct rawcb_list_head, rawcb_list);
-
-static SYSCTL_NODE(_net, OID_AUTO, raw, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
- "Raw socket infrastructure");
-
-static u_long raw_sendspace = RAWSNDQ;
-SYSCTL_ULONG(_net_raw, OID_AUTO, sendspace, CTLFLAG_RW, &raw_sendspace, 0,
- "Default raw socket send space");
-
-static u_long raw_recvspace = RAWRCVQ;
-SYSCTL_ULONG(_net_raw, OID_AUTO, recvspace, CTLFLAG_RW, &raw_recvspace, 0,
- "Default raw socket receive space");
-
-/*
- * Allocate a control block and a nominal amount of buffer space for the
- * socket.
- */
-int
-raw_attach(struct socket *so, int proto)
-{
- struct rawcb *rp = sotorawcb(so);
- int error;
-
- /*
- * It is assumed that raw_attach is called after space has been
- * allocated for the rawcb; consumer protocols may simply allocate
- * type struct rawcb, or a wrapper data structure that begins with a
- * struct rawcb.
- */
- KASSERT(rp != NULL, ("raw_attach: rp == NULL"));
-
- error = soreserve(so, raw_sendspace, raw_recvspace);
- if (error)
- return (error);
- rp->rcb_socket = so;
- rp->rcb_proto.sp_family = so->so_proto->pr_domain->dom_family;
- rp->rcb_proto.sp_protocol = proto;
- mtx_lock(&rawcb_mtx);
- LIST_INSERT_HEAD(&V_rawcb_list, rp, list);
- mtx_unlock(&rawcb_mtx);
- return (0);
-}
-
-/*
- * Detach the raw connection block and discard socket resources.
- */
-void
-raw_detach(struct rawcb *rp)
-{
- struct socket *so = rp->rcb_socket;
-
- KASSERT(so->so_pcb == rp, ("raw_detach: so_pcb != rp"));
-
- so->so_pcb = NULL;
- mtx_lock(&rawcb_mtx);
- LIST_REMOVE(rp, list);
- mtx_unlock(&rawcb_mtx);
- free((caddr_t)(rp), M_PCB);
-}
Index: sys/net/raw_usrreq.c
===================================================================
--- sys/net/raw_usrreq.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1980, 1986, 1993
- * The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)raw_usrreq.c 8.1 (Berkeley) 6/10/93
- * $FreeBSD$
- */
-
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/lock.h>
-#include <sys/malloc.h>
-#include <sys/mbuf.h>
-#include <sys/mutex.h>
-#include <sys/priv.h>
-#include <sys/protosw.h>
-#include <sys/signalvar.h>
-#include <sys/socket.h>
-#include <sys/socketvar.h>
-#include <sys/sx.h>
-#include <sys/systm.h>
-
-#include <net/if.h>
-#include <net/vnet.h>
-#include <net/raw_cb.h>
-
-MTX_SYSINIT(rawcb_mtx, &rawcb_mtx, "rawcb", MTX_DEF);
-
-/*
- * Initialize raw connection block q.
- */
-static void
-raw_init(void *arg __unused)
-{
-
- LIST_INIT(&V_rawcb_list);
-}
-VNET_SYSINIT(raw_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, raw_init, NULL);
-
-/*
- * Raw protocol input routine. Find the socket associated with the packet(s)
- * and move them over. If nothing exists for this packet, drop it.
- */
-/*
- * Raw protocol interface.
- */
-void
-raw_input(struct mbuf *m0, struct sockproto *proto, struct sockaddr *src)
-{
-
- return (raw_input_ext(m0, proto, src, NULL));
-}
-
-void
-raw_input_ext(struct mbuf *m0, struct sockproto *proto, struct sockaddr *src,
- raw_input_cb_fn cb)
-{
- struct rawcb *rp;
- struct mbuf *m = m0;
- struct socket *last;
-
- last = NULL;
- mtx_lock(&rawcb_mtx);
- LIST_FOREACH(rp, &V_rawcb_list, list) {
- if (rp->rcb_proto.sp_family != proto->sp_family)
- continue;
- if (rp->rcb_proto.sp_protocol &&
- rp->rcb_proto.sp_protocol != proto->sp_protocol)
- continue;
- if (cb != NULL && (*cb)(m, proto, src, rp) != 0)
- continue;
- if (last) {
- struct mbuf *n;
- n = m_copym(m, 0, M_COPYALL, M_NOWAIT);
- if (n) {
- if (sbappendaddr(&last->so_rcv, src,
- n, (struct mbuf *)0) == 0) {
- soroverflow(last);
- m_freem(n);
- } else
- sorwakeup(last);
- }
- }
- last = rp->rcb_socket;
- }
- if (last) {
- if (sbappendaddr(&last->so_rcv, src,
- m, (struct mbuf *)0) == 0) {
- soroverflow(last);
- m_freem(m);
- } else
- sorwakeup(last);
- } else
- m_freem(m);
- mtx_unlock(&rawcb_mtx);
-}
-
-/*ARGSUSED*/
-void
-raw_ctlinput(int cmd, struct sockaddr *arg, void *dummy)
-{
-
- if (cmd < 0 || cmd >= PRC_NCMDS)
- return;
- /* INCOMPLETE */
-}
-
-static void
-raw_uabort(struct socket *so)
-{
-
- KASSERT(sotorawcb(so) != NULL, ("raw_uabort: rp == NULL"));
-
- soisdisconnected(so);
-}
-
-static void
-raw_uclose(struct socket *so)
-{
-
- KASSERT(sotorawcb(so) != NULL, ("raw_uabort: rp == NULL"));
-
- soisdisconnected(so);
-}
-
-/* pru_accept is EOPNOTSUPP */
-
-static int
-raw_uattach(struct socket *so, int proto, struct thread *td)
-{
- int error;
-
- /*
- * Implementors of raw sockets will already have allocated the PCB,
- * so it must be non-NULL here.
- */
- KASSERT(sotorawcb(so) != NULL, ("raw_uattach: so_pcb == NULL"));
-
- if (td != NULL) {
- error = priv_check(td, PRIV_NET_RAW);
- if (error)
- return (error);
- }
- return (raw_attach(so, proto));
-}
-
-static int
-raw_ubind(struct socket *so, struct sockaddr *nam, struct thread *td)
-{
-
- return (EINVAL);
-}
-
-static int
-raw_uconnect(struct socket *so, struct sockaddr *nam, struct thread *td)
-{
-
- return (EINVAL);
-}
-
-/* pru_connect2 is EOPNOTSUPP */
-/* pru_control is EOPNOTSUPP */
-
-static void
-raw_udetach(struct socket *so)
-{
- struct rawcb *rp = sotorawcb(so);
-
- KASSERT(rp != NULL, ("raw_udetach: rp == NULL"));
-
- raw_detach(rp);
-}
-
-static int
-raw_udisconnect(struct socket *so)
-{
-
- KASSERT(sotorawcb(so) != NULL, ("raw_udisconnect: rp == NULL"));
-
- return (ENOTCONN);
-}
-
-/* pru_listen is EOPNOTSUPP */
-
-static int
-raw_upeeraddr(struct socket *so, struct sockaddr **nam)
-{
-
- KASSERT(sotorawcb(so) != NULL, ("raw_upeeraddr: rp == NULL"));
-
- return (ENOTCONN);
-}
-
-/* pru_rcvd is EOPNOTSUPP */
-/* pru_rcvoob is EOPNOTSUPP */
-
-static int
-raw_usend(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam,
- struct mbuf *control, struct thread *td)
-{
-
- KASSERT(sotorawcb(so) != NULL, ("raw_usend: rp == NULL"));
-
- if ((flags & PRUS_OOB) || (control && control->m_len)) {
- if (m != NULL)
- m_freem(m);
- if (control != NULL)
- m_freem(control);
- return (EOPNOTSUPP);
- }
-
- /*
- * For historical (bad?) reasons, we effectively ignore the address
- * argument to sendto(2). Perhaps we should return an error instead?
- */
- return ((*so->so_proto->pr_output)(m, so));
-}
-
-/* pru_sense is null */
-
-static int
-raw_ushutdown(struct socket *so)
-{
-
- KASSERT(sotorawcb(so) != NULL, ("raw_ushutdown: rp == NULL"));
-
- socantsendmore(so);
- return (0);
-}
-
-static int
-raw_usockaddr(struct socket *so, struct sockaddr **nam)
-{
-
- KASSERT(sotorawcb(so) != NULL, ("raw_usockaddr: rp == NULL"));
-
- return (EINVAL);
-}
-
-struct pr_usrreqs raw_usrreqs = {
- .pru_abort = raw_uabort,
- .pru_attach = raw_uattach,
- .pru_bind = raw_ubind,
- .pru_connect = raw_uconnect,
- .pru_detach = raw_udetach,
- .pru_disconnect = raw_udisconnect,
- .pru_peeraddr = raw_upeeraddr,
- .pru_send = raw_usend,
- .pru_shutdown = raw_ushutdown,
- .pru_sockaddr = raw_usockaddr,
- .pru_close = raw_uclose,
-};

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 1, 1:38 PM (5 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13253813
Default Alt Text
D36124.diff (14 KB)

Event Timeline