Commit Graph

36 Commits

Author SHA1 Message Date
bms
32a71137f0 Bite the bullet, and make the IPv6 SSM and MLDv2 mega-commit:
import from p4 bms_netdev.  Summary of changes:

 * Connect netinet6/in6_mcast.c to build.
   The legacy KAME KPIs are mostly preserved.
 * Eliminate now dead code from ip6_output.c.
   Don't do mbuf bingo, we are not going to do RFC 2292 style
   CMSG tricks for multicast options as they are not required
   by any current IPv6 normative reference.
 * Refactor transports (UDP, raw_ip6) to do own mcast filtering.
   SCTP, TCP unaffected by this change.
 * Add ip6_msource, in6_msource structs to in6_var.h.
 * Hookup mld_ifinfo state to in6_ifextra, allocate from
   domifattach path.
 * Eliminate IN6_LOOKUP_MULTI(), it is no longer referenced.
   Kernel consumers which need this should use in6m_lookup().
 * Refactor IPv6 socket group memberships to use a vector (like IPv4).
 * Update ifmcstat(8) for IPv6 SSM.
 * Add witness lock order for IN6_MULTI_LOCK.
 * Move IN6_MULTI_LOCK out of lower ip6_output()/ip6_input() paths.
 * Introduce IP6STAT_ADD/SUB/INC/DEC as per rwatson's IPv4 cleanup.
 * Update carp(4) for new IPv6 SSM KPIs.
 * Virtualize ip6_mrouter socket.
   Changes mostly localized to IPv6 MROUTING.
 * Don't do a local group lookup in MROUTING.
 * Kill unused KAME prototypes in6_purgemkludge(), in6_restoremkludge().
 * Preserve KAME DAD timer jitter behaviour in MLDv1 compatibility mode.
 * Bump __FreeBSD_version to 800084.
 * Update UPDATING.

NOTE WELL:
 * This code hasn't been tested against real MLDv2 queriers
   (yet), although the on-wire protocol has been verified in Wireshark.
 * There are a few unresolved issues in the socket layer APIs to
   do with scope ID propagation.
 * There is a LOR present in ip6_output()'s use of
   in6_setscope() which needs to be resolved. See comments in mld6.c.
   This is believed to be benign and can't be avoided for the moment
   without re-introducing an indirect netisr.

This work was mostly derived from the IGMPv3 implementation, and
has been sponsored by a third party.
2009-04-29 19:19:13 +00:00
bms
71233409ea Merge IGMPv3 and Source-Specific Multicast (SSM) to the FreeBSD
IPv4 stack.

Diffs are minimized against p4.
PCS has been used for some protocol verification, more widespread
testing of recorded sources in Group-and-Source queries is needed.
sizeof(struct igmpstat) has changed.

__FreeBSD_version is bumped to 800070.
2009-03-09 17:53:05 +00:00
bms
4fdc56d3dc Add printb.c utility file, but do not yet connect it to the build. 2009-03-04 02:12:29 +00:00
bms
b13005f9d8 nits 2009-02-15 15:26:42 +00:00
bms
253044f78b Blow away KAME MLDv2 hooks.
This code can be gotten from change history here and it's
more than likely our implementation will differ significantly
because of VIMAGE and SMPng.
2009-02-15 15:21:34 +00:00
bms
f694be632b Improve ifmcstat(8) and fix a few bugs while we're at it:
* Retire the old 'ifmcstat <kernel>' usage.
 * Print AF_LINK records even if run against KVM.
   This makes the KVM backend consistent with the sysctl backend.
 * Suppress printing of link-layer group records by default.
 * Add a -v switch to allow link-layer groups to be printed.
 * If compiled without INET6 support, actually work.
 * If compiled with INET6 support, print the scope ID of
   all IPv6 addresses in both backends.
 * Update man page.
 * Update copyrights.

With this change, it is now reasonable to retire netstat -g.
Most of the SSM related gunk in this file will require later refactoring.

MFC after:	2 weeks
2009-02-15 15:19:34 +00:00
bms
4ed35034a2 Fix a typo which caused ifmcstat's sysctl path
to print the network-layer endpoint address of the
group membership, rather than its link-layer mapping
as intended.
The KVM path is not affected.

MFC after:	1 week
2009-02-15 12:10:05 +00:00
keramida
84b55169ea mdoc fix: Add missing .El request
MFC after:	3 days
2007-10-30 16:04:23 +00:00
sepotvin
3ffe583f13 Options spring cleanup:
- Add and document the KVM and KVM_SUPPORT options that
are needed for the ifmcstats(3) makefile
- Garbage collect unused variables
- Add missing inclusion of bsd.own.mk where needed

Approved by: kan (mentor)
Reviewed by: ru
2007-06-13 02:08:04 +00:00
bms
84121b9071 Considerably rework the ifmcstat utility.
* Build with or without INET, INET6, or KVM features.
  * When built without KVM, the sysctl-based getifmaddrs() function
    is used as the back-end for the utility.
 * Reflect the fact that FreeBSD now uses the in_multi refcount as
   a true refcount.
 * Style.

The utility may now be run without super-user privilege, albeit with
a less detailed display, equivalent to that of the soon-to-be-retired
netstat -g host-mode output.

MFC after:	3 weeks
2007-04-10 00:26:12 +00:00
bms
4b3b0469d6 Remove __P. 2007-04-09 19:52:44 +00:00
bms
9e60396f0b Use -M and -N for core and kernel image respectively. 2007-03-20 02:08:28 +00:00
bms
70b3eda27c Make clean for !INET6.
Remove non-FreeBSD code.
Sort includes.
2007-03-19 18:13:02 +00:00
bms
e6b26f1d88 Merge latest ifmcstat (with changes for FreeBSD).
Possibly merge or split with netstat -g.

TODO: Make !defined(INET6) clean.
TODO: Add -M/-N instead of -k.
TODO: Use sysctls instead of kvm.

Obtained from:	KAME
MFC after:	2 weeks
2007-03-19 16:45:06 +00:00
ru
114ea39c76 Fixed the misplaced $FreeBSD$. 2005-02-09 18:07:17 +00:00
dd
eafda830d9 Remove unused variable and clamp down with WARNS=2
PR:		71662
Submitted by:	Dan Lukes <dan@obluda.cz>
Tested on:	i386, sparc64, ia64, amd64
2004-09-13 08:14:55 +00:00
stefanf
576a0c7243 Include <net/ethernet.h> to have a prototype for ether_ntoa().
Approved by:	das (mentor)
2004-05-28 17:44:11 +00:00
brooks
f1e94c6f29 Replace the if_name and if_unit members of struct ifnet with new members
if_xname, if_dname, and if_dunit. if_xname is the name of the interface
and if_dname/unit are the driver name and instance.

This change paves the way for interface renaming and enhanced pseudo
device creation and configuration symantics.

Approved By:	re (in principle)
Reviewed By:	njl, imp
Tested On:	i386, amd64, sparc64
Obtained From:	NetBSD (if_xname)
2003-10-31 18:32:15 +00:00
ume
bf741bc603 stop use of NI_WITHSCOPEID. it was deprecated.
Obtained from:	KAME
2003-10-21 20:11:47 +00:00
obrien
a920d12f89 style.Makefile(5) 2003-04-04 17:49:21 +00:00
charnier
d2168fe021 The .Nm utility 2002-07-14 14:47:15 +00:00
obrien
9c97c8f02d Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
ru
cf78624010 Install it with mode 550, and with default group ${BINGRP}. 2001-07-04 07:20:11 +00:00
ru
94120cdf83 - Document that this program is available to root only.
- Document alternate way to fetch multicast info.
- Add RFC2080 reference.

Obtained from:	OpenBSD (with mods)
2001-07-04 07:17:24 +00:00
ume
16f7cc2d22 drop setgid bit. ifmcstat(8) is not audited, and is needed only for root.
Obtained from:	KAME
MFC after:	1 week
2001-07-03 18:15:07 +00:00
dd
7894e59b7f Nuke unused variables. 2001-06-24 23:41:57 +00:00
ume
832f8d2249 Sync with recent KAME.
This work was based on kame-20010528-freebsd43-snap.tgz and some
critical problem after the snap was out were fixed.
There are many many changes since last KAME merge.

TODO:
  - The definitions of SADB_* in sys/net/pfkeyv2.h are still different
    from RFC2407/IANA assignment because of binary compatibility
    issue.  It should be fixed under 5-CURRENT.
  - ip6po_m member of struct ip6_pktopts is no longer used.  But, it
    is still there because of binary compatibility issue.  It should
    be removed under 5-CURRENT.

Reviewed by:	itojun
Obtained from:	KAME
MFC after:	3 weeks
2001-06-11 12:39:29 +00:00
ru
afd506414e - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
ru
f10dc9aca1 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
phk
d214ae2171 Convert if_multiaddrs from LIST to TAILQ so that it can be traversed
backwards in the three drivers which want to do that.

Reviewed by:    mikeh
2001-02-06 10:12:15 +00:00
phk
8211e35e91 Use macro API to <sys/queue.h>
Submitted by:	"Jason" <jsmethers@pdq.net>
Reviewed by:	/sbin/md5
2000-12-30 20:56:04 +00:00
ume
d25c1d750e Sync with latest KAME.
Obtained from:	KAME
2000-07-07 19:19:25 +00:00
phantom
c01ef9fc3c Remove useless .Nm macro argument 2000-04-20 15:21:16 +00:00
shin
5a9ffb7f5a remove redundant ifdef's.
some part is specified by: phantom
2000-01-07 10:02:43 +00:00
billf
6dc9df830a Fix KERNEL vs _KERNEL spammage.
Submitted by:	Paul Saab <paul@mu.org>
1999-12-30 04:12:36 +00:00
shin
8c2ccb59ca Getaddrinfo(), getnameinfo(), and etc support in libc/net.
Several udp and raw apps IPv6 support.

Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project
1999-12-28 02:37:14 +00:00