git: ce40632a316c - main - ifnet: append if_debug.c to if.c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 23 Nov 2021 03:52:13 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=ce40632a316c597437fcac323eeac13dda76448f
commit ce40632a316c597437fcac323eeac13dda76448f
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2021-11-23 03:49:57 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2021-11-23 03:49:57 +0000
ifnet: append if_debug.c to if.c
With this change if_index can become static. There is nothing
that if_debug.c would want to isolate from if.c. Potentially
if.c wants to share everything with if_debug.c.
Move Bjoern's copyright to if.c.
Reviewed by: bz
---
sys/conf/files | 1 -
sys/net/if.c | 94 +++++++++++++++++++++++++++++++++++-
sys/net/if_debug.c | 138 -----------------------------------------------------
3 files changed, 93 insertions(+), 140 deletions(-)
diff --git a/sys/conf/files b/sys/conf/files
index 8854d827bcc3..fdf133068ad3 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -4144,7 +4144,6 @@ net/if.c standard
net/if_bridge.c optional bridge inet | if_bridge inet
net/if_clone.c standard
net/if_dead.c standard
-net/if_debug.c optional ddb
net/if_disc.c optional disc
net/if_edsc.c optional edsc
net/if_enc.c optional enc inet | enc inet6
diff --git a/sys/net/if.c b/sys/net/if.c
index 1cd44908ca0f..0d6aa10d64dc 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1,6 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-3-Clause
*
+ * Copyright (c) 2010 Bjoern A. Zeeb <bz@FreeBSD.org>
* Copyright (c) 1980, 1986, 1993
* The Regents of the University of California. All rights reserved.
*
@@ -66,6 +67,10 @@
#include <sys/jail.h>
#include <sys/priv.h>
+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
#include <machine/stdarg.h>
#include <vm/uma.h>
@@ -308,7 +313,7 @@ VNET_DEFINE(struct ifgrouphead, ifg_head);
VNET_DEFINE_STATIC(int, if_indexlim) = 8;
/* Table of ifnet by index. */
-VNET_DEFINE(struct ifnet **, ifindex_table);
+VNET_DEFINE_STATIC(struct ifnet **, ifindex_table);
#define V_if_indexlim VNET(if_indexlim)
#define V_ifindex_table VNET(ifindex_table)
@@ -4591,3 +4596,90 @@ if_setgetcounterfn(if_t ifp, if_get_counter_t fn)
ifp->if_get_counter = fn;
}
+
+#ifdef DDB
+static void
+if_show_ifnet(struct ifnet *ifp)
+{
+
+ if (ifp == NULL)
+ return;
+ db_printf("%s:\n", ifp->if_xname);
+#define IF_DB_PRINTF(f, e) db_printf(" %s = " f "\n", #e, ifp->e);
+ IF_DB_PRINTF("%s", if_dname);
+ IF_DB_PRINTF("%d", if_dunit);
+ IF_DB_PRINTF("%s", if_description);
+ IF_DB_PRINTF("%u", if_index);
+ IF_DB_PRINTF("%u", if_refcount);
+ IF_DB_PRINTF("%d", if_index_reserved);
+ IF_DB_PRINTF("%p", if_softc);
+ IF_DB_PRINTF("%p", if_l2com);
+ IF_DB_PRINTF("%p", if_llsoftc);
+ IF_DB_PRINTF("%d", if_amcount);
+ IF_DB_PRINTF("%p", if_addr);
+ IF_DB_PRINTF("%p", if_broadcastaddr);
+ IF_DB_PRINTF("%p", if_afdata);
+ IF_DB_PRINTF("%d", if_afdata_initialized);
+ IF_DB_PRINTF("%u", if_fib);
+ IF_DB_PRINTF("%p", if_vnet);
+ IF_DB_PRINTF("%p", if_home_vnet);
+ IF_DB_PRINTF("%p", if_vlantrunk);
+ IF_DB_PRINTF("%p", if_bpf);
+ IF_DB_PRINTF("%u", if_pcount);
+ IF_DB_PRINTF("%p", if_bridge);
+ IF_DB_PRINTF("%p", if_lagg);
+ IF_DB_PRINTF("%p", if_pf_kif);
+ IF_DB_PRINTF("%p", if_carp);
+ IF_DB_PRINTF("%p", if_label);
+ IF_DB_PRINTF("%p", if_netmap);
+ IF_DB_PRINTF("0x%08x", if_flags);
+ IF_DB_PRINTF("0x%08x", if_drv_flags);
+ IF_DB_PRINTF("0x%08x", if_capabilities);
+ IF_DB_PRINTF("0x%08x", if_capenable);
+ IF_DB_PRINTF("%p", if_snd.ifq_head);
+ IF_DB_PRINTF("%p", if_snd.ifq_tail);
+ IF_DB_PRINTF("%d", if_snd.ifq_len);
+ IF_DB_PRINTF("%d", if_snd.ifq_maxlen);
+ IF_DB_PRINTF("%p", if_snd.ifq_drv_head);
+ IF_DB_PRINTF("%p", if_snd.ifq_drv_tail);
+ IF_DB_PRINTF("%d", if_snd.ifq_drv_len);
+ IF_DB_PRINTF("%d", if_snd.ifq_drv_maxlen);
+ IF_DB_PRINTF("%d", if_snd.altq_type);
+ IF_DB_PRINTF("%x", if_snd.altq_flags);
+#undef IF_DB_PRINTF
+}
+
+DB_SHOW_COMMAND(ifnet, db_show_ifnet)
+{
+
+ if (!have_addr) {
+ db_printf("usage: show ifnet <struct ifnet *>\n");
+ return;
+ }
+
+ if_show_ifnet((struct ifnet *)addr);
+}
+
+DB_SHOW_ALL_COMMAND(ifnets, db_show_all_ifnets)
+{
+ VNET_ITERATOR_DECL(vnet_iter);
+ struct ifnet *ifp;
+ u_short idx;
+
+ VNET_FOREACH(vnet_iter) {
+ CURVNET_SET_QUIET(vnet_iter);
+#ifdef VIMAGE
+ db_printf("vnet=%p\n", curvnet);
+#endif
+ for (idx = 1; idx <= V_if_index; idx++) {
+ ifp = V_ifindex_table[idx].ife_ifnet;
+ if (ifp == NULL)
+ continue;
+ db_printf( "%20s ifp=%p\n", ifp->if_xname, ifp);
+ if (db_pager_quit)
+ break;
+ }
+ CURVNET_RESTORE();
+ }
+}
+#endif /* DDB */
diff --git a/sys/net/if_debug.c b/sys/net/if_debug.c
deleted file mode 100644
index 4a8e49e3dea6..000000000000
--- a/sys/net/if_debug.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2010 Bjoern A. Zeeb <bz@FreeBSD.org>
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "opt_ddb.h"
-
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-
-#ifdef DDB
-#include <ddb/ddb.h>
-#endif
-
-#include <net/if.h>
-#include <net/if_types.h>
-#include <net/if_var.h>
-#include <net/vnet.h>
-
-#ifdef DDB
-struct ifindex_entry {
- struct ifnet *ife_ifnet;
-};
-VNET_DECLARE(struct ifindex_entry *, ifindex_table);
-#define V_ifindex_table VNET(ifindex_table)
-
-static void
-if_show_ifnet(struct ifnet *ifp)
-{
-
- if (ifp == NULL)
- return;
- db_printf("%s:\n", ifp->if_xname);
-#define IF_DB_PRINTF(f, e) db_printf(" %s = " f "\n", #e, ifp->e);
- IF_DB_PRINTF("%s", if_dname);
- IF_DB_PRINTF("%d", if_dunit);
- IF_DB_PRINTF("%s", if_description);
- IF_DB_PRINTF("%u", if_index);
- IF_DB_PRINTF("%u", if_refcount);
- IF_DB_PRINTF("%d", if_index_reserved);
- IF_DB_PRINTF("%p", if_softc);
- IF_DB_PRINTF("%p", if_l2com);
- IF_DB_PRINTF("%p", if_llsoftc);
- IF_DB_PRINTF("%d", if_amcount);
- IF_DB_PRINTF("%p", if_addr);
- IF_DB_PRINTF("%p", if_broadcastaddr);
- IF_DB_PRINTF("%p", if_afdata);
- IF_DB_PRINTF("%d", if_afdata_initialized);
- IF_DB_PRINTF("%u", if_fib);
- IF_DB_PRINTF("%p", if_vnet);
- IF_DB_PRINTF("%p", if_home_vnet);
- IF_DB_PRINTF("%p", if_vlantrunk);
- IF_DB_PRINTF("%p", if_bpf);
- IF_DB_PRINTF("%u", if_pcount);
- IF_DB_PRINTF("%p", if_bridge);
- IF_DB_PRINTF("%p", if_lagg);
- IF_DB_PRINTF("%p", if_pf_kif);
- IF_DB_PRINTF("%p", if_carp);
- IF_DB_PRINTF("%p", if_label);
- IF_DB_PRINTF("%p", if_netmap);
- IF_DB_PRINTF("0x%08x", if_flags);
- IF_DB_PRINTF("0x%08x", if_drv_flags);
- IF_DB_PRINTF("0x%08x", if_capabilities);
- IF_DB_PRINTF("0x%08x", if_capenable);
- IF_DB_PRINTF("%p", if_snd.ifq_head);
- IF_DB_PRINTF("%p", if_snd.ifq_tail);
- IF_DB_PRINTF("%d", if_snd.ifq_len);
- IF_DB_PRINTF("%d", if_snd.ifq_maxlen);
- IF_DB_PRINTF("%p", if_snd.ifq_drv_head);
- IF_DB_PRINTF("%p", if_snd.ifq_drv_tail);
- IF_DB_PRINTF("%d", if_snd.ifq_drv_len);
- IF_DB_PRINTF("%d", if_snd.ifq_drv_maxlen);
- IF_DB_PRINTF("%d", if_snd.altq_type);
- IF_DB_PRINTF("%x", if_snd.altq_flags);
-#undef IF_DB_PRINTF
-}
-
-DB_SHOW_COMMAND(ifnet, db_show_ifnet)
-{
-
- if (!have_addr) {
- db_printf("usage: show ifnet <struct ifnet *>\n");
- return;
- }
-
- if_show_ifnet((struct ifnet *)addr);
-}
-
-DB_SHOW_ALL_COMMAND(ifnets, db_show_all_ifnets)
-{
- VNET_ITERATOR_DECL(vnet_iter);
- struct ifnet *ifp;
- u_short idx;
-
- VNET_FOREACH(vnet_iter) {
- CURVNET_SET_QUIET(vnet_iter);
-#ifdef VIMAGE
- db_printf("vnet=%p\n", curvnet);
-#endif
- for (idx = 1; idx <= V_if_index; idx++) {
- ifp = V_ifindex_table[idx].ife_ifnet;
- if (ifp == NULL)
- continue;
- db_printf( "%20s ifp=%p\n", ifp->if_xname, ifp);
- if (db_pager_quit)
- break;
- }
- CURVNET_RESTORE();
- }
-}
-#endif