003 File Manager
Current Path:
/usr/src/sys/net
usr
/
src
/
sys
/
net
/
📁
..
📁
altq
📄
bpf.c
(69.94 KB)
📄
bpf.h
(14.6 KB)
📄
bpf_buffer.c
(6.39 KB)
📄
bpf_buffer.h
(2.04 KB)
📄
bpf_filter.c
(12.09 KB)
📄
bpf_jitter.c
(3.43 KB)
📄
bpf_jitter.h
(3.3 KB)
📄
bpf_zerocopy.c
(16.12 KB)
📄
bpf_zerocopy.h
(2.36 KB)
📄
bpfdesc.h
(6.04 KB)
📄
bridgestp.c
(55.53 KB)
📄
bridgestp.h
(13.06 KB)
📄
debugnet.c
(26.35 KB)
📄
debugnet.h
(8.54 KB)
📄
debugnet_inet.c
(12.67 KB)
📄
debugnet_int.h
(3.11 KB)
📄
dlt.h
(44.23 KB)
📄
ethernet.h
(22.17 KB)
📄
firewire.h
(3.95 KB)
📄
ieee8023ad_lacp.c
(53.91 KB)
📄
ieee8023ad_lacp.h
(9.22 KB)
📄
ieee_oui.h
(3.64 KB)
📄
if.c
(105.86 KB)
📄
if.h
(22.3 KB)
📄
if_arp.h
(5.41 KB)
📄
if_bridge.c
(89.97 KB)
📄
if_bridgevar.h
(11.54 KB)
📄
if_clone.c
(17.42 KB)
📄
if_clone.h
(3.38 KB)
📄
if_dead.c
(3.83 KB)
📄
if_debug.c
(4.02 KB)
📄
if_disc.c
(5.95 KB)
📄
if_dl.h
(3.56 KB)
📄
if_edsc.c
(9.93 KB)
📄
if_enc.c
(12.02 KB)
📄
if_enc.h
(1.65 KB)
📄
if_epair.c
(27.75 KB)
📄
if_ethersubr.c
(37.23 KB)
📄
if_fwsubr.c
(19.22 KB)
📄
if_gif.c
(16.66 KB)
📄
if_gif.h
(4.16 KB)
📄
if_gre.c
(18.8 KB)
📄
if_gre.h
(5.69 KB)
📄
if_infiniband.c
(14.99 KB)
📄
if_ipsec.c
(24.98 KB)
📄
if_ipsec.h
(1.62 KB)
📄
if_lagg.c
(62.68 KB)
📄
if_lagg.h
(8.94 KB)
📄
if_llatbl.c
(20.5 KB)
📄
if_llatbl.h
(9.52 KB)
📄
if_llc.h
(4.53 KB)
📄
if_loop.c
(10.62 KB)
📄
if_me.c
(16.73 KB)
📄
if_media.c
(12.81 KB)
📄
if_media.h
(36.45 KB)
📄
if_mib.c
(4.6 KB)
📄
if_mib.h
(5.58 KB)
📄
if_pflog.h
(2.24 KB)
📄
if_pfsync.h
(6.85 KB)
📄
if_sppp.h
(8.37 KB)
📄
if_spppfr.c
(15.11 KB)
📄
if_spppsubr.c
(132.44 KB)
📄
if_stf.c
(19.3 KB)
📄
if_tap.h
(2.54 KB)
📄
if_tun.h
(1.43 KB)
📄
if_tuntap.c
(47.67 KB)
📄
if_types.h
(12.2 KB)
📄
if_var.h
(29.92 KB)
📄
if_vlan.c
(53.04 KB)
📄
if_vlan_var.h
(6.1 KB)
📄
if_vxlan.c
(88.14 KB)
📄
if_vxlan.h
(4.71 KB)
📄
ifdi_if.m
(8.4 KB)
📄
iflib.c
(185.91 KB)
📄
iflib.h
(14.41 KB)
📄
iflib_clone.c
(7.37 KB)
📄
iflib_private.h
(2.31 KB)
📄
ifq.h
(12.2 KB)
📄
infiniband.h
(2.64 KB)
📄
mp_ring.c
(13.3 KB)
📄
mp_ring.h
(2.77 KB)
📄
mppc.h
(2.37 KB)
📄
mppcc.c
(8.88 KB)
📄
mppcd.c
(7.89 KB)
📄
netisr.c
(44.33 KB)
📄
netisr.h
(9.31 KB)
📄
netisr_internal.h
(4.77 KB)
📄
netmap.h
(32.93 KB)
📄
netmap_legacy.h
(9.49 KB)
📄
netmap_user.h
(30.33 KB)
📄
netmap_virt.h
(3.89 KB)
📄
paravirt.h
(6.91 KB)
📄
pfil.c
(16.83 KB)
📄
pfil.h
(5.86 KB)
📄
pfkeyv2.h
(14.54 KB)
📄
pfvar.h
(48.83 KB)
📄
ppp_defs.h
(5.41 KB)
📄
radix.c
(30.87 KB)
📄
radix.h
(6.83 KB)
📄
raw_cb.c
(3.77 KB)
📄
raw_cb.h
(3.04 KB)
📄
raw_usrreq.c
(6.26 KB)
📄
rndis.h
(10.74 KB)
📁
route
📄
route.c
(19.25 KB)
📄
route.h
(16.54 KB)
📄
rss_config.c
(14.12 KB)
📄
rss_config.h
(4.69 KB)
📄
rtsock.c
(62.94 KB)
📄
sff8436.h
(8.3 KB)
📄
sff8472.h
(18.95 KB)
📄
slcompress.c
(16.25 KB)
📄
slcompress.h
(6.4 KB)
📄
toeplitz.c
(1.96 KB)
📄
toeplitz.h
(1.72 KB)
📄
vnet.c
(22.42 KB)
📄
vnet.h
(14.62 KB)
Editing: if_mib.c
/*- * Copyright 1996 Massachusetts Institute of Technology * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose and without fee is hereby * granted, provided that both the above copyright notice and this * permission notice appear in all copies, that both the above * copyright notice and this permission notice appear in all * supporting documentation, and that the name of M.I.T. not be used * in advertising or publicity pertaining to distribution of the * software without specific, written prior permission. M.I.T. makes * no representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied * warranty. * * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT * SHALL M.I.T. 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$ */ #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/malloc.h> #include <sys/socket.h> #include <sys/sysctl.h> #include <net/if.h> #include <net/if_var.h> #include <net/if_mib.h> #include <net/vnet.h> /* * A sysctl(3) MIB for generic interface information. This information * is exported in the net.link.generic branch, which has the following * structure: * * net.link.generic .system - system-wide control variables * and statistics (node) * .ifdata.<ifindex>.general * - what's in `struct ifdata' * plus some other info * .ifdata.<ifindex>.linkspecific * - a link-type-specific data * structure (as might be used * by an SNMP agent * * Perhaps someday we will make addresses accessible via this interface * as well (then there will be four such...). The reason that the * index comes before the last element in the name is because it * seems more orthogonal that way, particularly with the possibility * of other per-interface data living down here as well (e.g., integrated * services stuff). */ SYSCTL_DECL(_net_link_generic); static SYSCTL_NODE(_net_link_generic, IFMIB_SYSTEM, system, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "Variables global to all interfaces"); SYSCTL_INT(_net_link_generic_system, IFMIB_IFCOUNT, ifcount, CTLFLAG_VNET | CTLFLAG_RD, &VNET_NAME(if_index), 0, "Number of configured interfaces"); static int sysctl_ifdata(SYSCTL_HANDLER_ARGS) /* XXX bad syntax! */ { int *name = (int *)arg1; int error; u_int namelen = arg2; struct ifnet *ifp; struct ifmibdata ifmd; struct epoch_tracker et; size_t dlen; char *dbuf; if (namelen != 2) return EINVAL; if (name[0] <= 0) return (ENOENT); NET_EPOCH_ENTER(et); ifp = ifnet_byindex_ref(name[0]); NET_EPOCH_EXIT(et); if (ifp == NULL) return (ENOENT); switch(name[1]) { default: error = ENOENT; goto out; case IFDATA_GENERAL: bzero(&ifmd, sizeof(ifmd)); strlcpy(ifmd.ifmd_name, ifp->if_xname, sizeof(ifmd.ifmd_name)); ifmd.ifmd_pcount = ifp->if_pcount; if_data_copy(ifp, &ifmd.ifmd_data); ifmd.ifmd_flags = ifp->if_flags | ifp->if_drv_flags; ifmd.ifmd_snd_len = ifp->if_snd.ifq_len; ifmd.ifmd_snd_maxlen = ifp->if_snd.ifq_maxlen; ifmd.ifmd_snd_drops = ifp->if_get_counter(ifp, IFCOUNTER_OQDROPS); error = SYSCTL_OUT(req, &ifmd, sizeof ifmd); if (error) goto out; break; case IFDATA_LINKSPECIFIC: error = SYSCTL_OUT(req, ifp->if_linkmib, ifp->if_linkmiblen); if (error || !req->newptr) goto out; break; case IFDATA_DRIVERNAME: /* 20 is enough for 64bit ints */ dlen = strlen(ifp->if_dname) + 20 + 1; if ((dbuf = malloc(dlen, M_TEMP, M_NOWAIT)) == NULL) { error = ENOMEM; goto out; } if (ifp->if_dunit == IF_DUNIT_NONE) strcpy(dbuf, ifp->if_dname); else sprintf(dbuf, "%s%d", ifp->if_dname, ifp->if_dunit); error = SYSCTL_OUT(req, dbuf, strlen(dbuf) + 1); if (error == 0 && req->newptr != NULL) error = EPERM; free(dbuf, M_TEMP); goto out; } out: if_rele(ifp); return error; } static SYSCTL_NODE(_net_link_generic, IFMIB_IFDATA, ifdata, CTLFLAG_RD | CTLFLAG_MPSAFE, sysctl_ifdata, "Interface table");
Upload File
Create Folder