aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linuxkpi/common/include/linux/inetdevice.h
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2021-03-26 17:52:24 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2021-03-30 14:40:46 +0000
commit7069b4c6a4e516e1435d8beb7a436d88193156d3 (patch)
tree1413b3062ac8d3b3c33900f9c5a3f180f3c230e3 /sys/compat/linuxkpi/common/include/linux/inetdevice.h
parent7446b0888d920124516284eaa32714d63353e2c9 (diff)
downloadsrc-7069b4c6a4e516e1435d8beb7a436d88193156d3.tar.gz
src-7069b4c6a4e516e1435d8beb7a436d88193156d3.zip
LinuxKPI/OFED: (re)move inetdevice.h implementation
The two functions in linux/inetdevice.h are highly FreeBSD/ifnet specific. This is a result of struct net_device being mapped to struct ifnet. The only known consumer of these functions are two files in the ofed/infiniband code. As a first step of cleaning up copy linux/inetdevice.h to rdma/ib_addr_freebsd.h. (It stayed a separate file to preserve copyright and license of the original file; otherwise it could be merged into ib_addr.h where more EPOCH/vnet/.. are already used). Slightly rename the function to not conflict with LinuxKPI in the future. Remove the three last, now unneeded includes of inetdevice.h and zap linux/inetdevice.h to an empty header file with only the forward include to netdevice.h remaining. Sponsored-by: The FreeBSD Foundation MFC-after: 2 weeks Reviewed-by: hselasky, kib X-D-R: D29366 (extracted as further cleanup) Differential Revision: https://reviews.freebsd.org/D29434
Diffstat (limited to 'sys/compat/linuxkpi/common/include/linux/inetdevice.h')
-rw-r--r--sys/compat/linuxkpi/common/include/linux/inetdevice.h87
1 files changed, 0 insertions, 87 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/inetdevice.h b/sys/compat/linuxkpi/common/include/linux/inetdevice.h
index 87c880392b71..41852e8fed81 100644
--- a/sys/compat/linuxkpi/common/include/linux/inetdevice.h
+++ b/sys/compat/linuxkpi/common/include/linux/inetdevice.h
@@ -1,93 +1,6 @@
-/*-
- * Copyright (c) 2010 Isilon Systems, Inc.
- * Copyright (c) 2010 iX Systems, Inc.
- * Copyright (c) 2010 Panasas, Inc.
- * Copyright (c) 2013-2017 Mellanox Technologies, Ltd.
- * 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 unmodified, 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
- *
- * $FreeBSD$
- */
#ifndef _LINUX_INETDEVICE_H_
#define _LINUX_INETDEVICE_H_
#include <linux/netdevice.h>
-static inline struct net_device *
-ip_dev_find(struct vnet *vnet, uint32_t addr)
-{
- struct sockaddr_in sin;
- struct epoch_tracker et;
- struct ifaddr *ifa;
- struct ifnet *ifp;
-
- memset(&sin, 0, sizeof(sin));
- sin.sin_addr.s_addr = addr;
- sin.sin_len = sizeof(sin);
- sin.sin_family = AF_INET;
- NET_EPOCH_ENTER(et);
- CURVNET_SET_QUIET(vnet);
- ifa = ifa_ifwithaddr((struct sockaddr *)&sin);
- CURVNET_RESTORE();
- if (ifa) {
- ifp = ifa->ifa_ifp;
- if_ref(ifp);
- } else {
- ifp = NULL;
- }
- NET_EPOCH_EXIT(et);
- return (ifp);
-}
-
-static inline struct net_device *
-ip6_dev_find(struct vnet *vnet, struct in6_addr addr, uint16_t scope_id)
-{
- struct sockaddr_in6 sin6;
- struct epoch_tracker et;
- struct ifaddr *ifa;
- struct ifnet *ifp;
-
- memset(&sin6, 0, sizeof(sin6));
- sin6.sin6_addr = addr;
- sin6.sin6_len = sizeof(sin6);
- sin6.sin6_family = AF_INET6;
- if (IN6_IS_SCOPE_LINKLOCAL(&addr) ||
- IN6_IS_ADDR_MC_INTFACELOCAL(&addr)) {
- /* embed the IPv6 scope ID */
- sin6.sin6_addr.s6_addr16[1] = htons(scope_id);
- }
- NET_EPOCH_ENTER(et);
- CURVNET_SET_QUIET(vnet);
- ifa = ifa_ifwithaddr((struct sockaddr *)&sin6);
- CURVNET_RESTORE();
- if (ifa != NULL) {
- ifp = ifa->ifa_ifp;
- if_ref(ifp);
- } else {
- ifp = NULL;
- }
- NET_EPOCH_EXIT(et);
- return (ifp);
-}
-
#endif /* _LINUX_INETDEVICE_H_ */