2007-04-29 14:05:22 +00:00
|
|
|
/*
|
|
|
|
* $FreeBSD$
|
|
|
|
*/
|
2006-03-13 00:53:21 +00:00
|
|
|
|
|
|
|
FBSD_1.0 {
|
|
|
|
__b64_ntop;
|
|
|
|
__b64_pton;
|
|
|
|
ether_line;
|
|
|
|
ether_aton;
|
2007-05-13 15:01:25 +00:00
|
|
|
ether_aton_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
ether_ntoa;
|
2007-05-13 15:01:25 +00:00
|
|
|
ether_ntoa_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
ether_ntohost;
|
|
|
|
ether_hostton;
|
|
|
|
eui64_aton;
|
|
|
|
eui64_ntoa;
|
|
|
|
eui64_ntohost;
|
|
|
|
eui64_hostton;
|
|
|
|
gai_strerror;
|
|
|
|
freeaddrinfo;
|
|
|
|
getaddrinfo;
|
|
|
|
gethostent;
|
2006-04-15 16:20:27 +00:00
|
|
|
gethostent_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
gethostbyname;
|
2006-04-15 16:20:27 +00:00
|
|
|
gethostbyname_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
gethostbyname2;
|
2006-04-15 16:20:27 +00:00
|
|
|
gethostbyname2_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
gethostbyaddr;
|
2006-04-15 16:20:27 +00:00
|
|
|
gethostbyaddr_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
sethostent;
|
|
|
|
endhostent;
|
|
|
|
getifaddrs;
|
|
|
|
freeifaddrs;
|
|
|
|
getifmaddrs;
|
|
|
|
freeifmaddrs;
|
|
|
|
getnameinfo;
|
|
|
|
getnetent;
|
2006-04-15 16:20:27 +00:00
|
|
|
getnetent_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
getnetbyname;
|
2006-04-15 16:20:27 +00:00
|
|
|
getnetbyname_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
getnetbyaddr;
|
2006-04-15 16:20:27 +00:00
|
|
|
getnetbyaddr_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
setnetent;
|
|
|
|
endnetent;
|
|
|
|
getprotobynumber;
|
2006-04-15 16:20:27 +00:00
|
|
|
getprotobynumber_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
setprotoent;
|
|
|
|
endprotoent;
|
|
|
|
getprotoent;
|
2006-04-15 16:20:27 +00:00
|
|
|
getprotoent_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
getprotobyname;
|
2006-04-15 16:20:27 +00:00
|
|
|
getprotobyname_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
getservbyname;
|
2006-04-15 16:20:27 +00:00
|
|
|
getservbyname_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
getservbyport;
|
2006-04-15 16:20:27 +00:00
|
|
|
getservbyport_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
setservent;
|
|
|
|
endservent;
|
|
|
|
getservent;
|
2006-04-15 16:20:27 +00:00
|
|
|
getservent_r;
|
2006-03-13 00:53:21 +00:00
|
|
|
hesiod_init;
|
|
|
|
hesiod_end;
|
|
|
|
hesiod_to_bind;
|
2007-05-24 13:50:06 +00:00
|
|
|
hesiod_resolve;
|
2006-03-13 00:53:21 +00:00
|
|
|
hesiod_free_list;
|
|
|
|
hes_init;
|
|
|
|
hes_to_bind;
|
2007-05-25 09:58:25 +00:00
|
|
|
hes_resolve;
|
2006-03-13 00:53:21 +00:00
|
|
|
hes_error;
|
|
|
|
hes_free;
|
|
|
|
if_indextoname;
|
|
|
|
if_nameindex;
|
|
|
|
if_freenameindex;
|
|
|
|
if_nametoindex;
|
|
|
|
inet6_option_space;
|
|
|
|
inet6_option_init;
|
|
|
|
inet6_option_append;
|
|
|
|
inet6_option_alloc;
|
|
|
|
inet6_option_next;
|
|
|
|
inet6_option_find;
|
|
|
|
inet6_opt_init;
|
|
|
|
inet6_opt_append;
|
|
|
|
inet6_opt_finish;
|
|
|
|
inet6_opt_set_val;
|
|
|
|
inet6_opt_next;
|
|
|
|
inet6_opt_find;
|
|
|
|
inet6_opt_get_val;
|
|
|
|
link_addr;
|
|
|
|
link_ntoa;
|
|
|
|
getipnodebyname;
|
|
|
|
getipnodebyaddr;
|
|
|
|
freehostent;
|
|
|
|
__nsdefaultsrc;
|
|
|
|
_nsdbtaddsrc;
|
|
|
|
_nsdbtdump;
|
|
|
|
_nsdbtput;
|
|
|
|
nsdispatch;
|
|
|
|
rcmd;
|
|
|
|
rcmd_af;
|
|
|
|
rresvport;
|
|
|
|
rresvport_af;
|
|
|
|
ruserok;
|
|
|
|
iruserok;
|
|
|
|
iruserok_sa;
|
|
|
|
rcmdsh;
|
|
|
|
recv;
|
|
|
|
inet6_rthdr_space;
|
|
|
|
inet6_rthdr_init;
|
|
|
|
inet6_rthdr_add;
|
|
|
|
inet6_rthdr_lasthop;
|
|
|
|
inet6_rthdr_segments;
|
|
|
|
inet6_rthdr_getaddr;
|
|
|
|
inet6_rthdr_getflags;
|
|
|
|
inet6_rth_space;
|
|
|
|
inet6_rth_init;
|
|
|
|
inet6_rth_add;
|
|
|
|
inet6_rth_reverse;
|
|
|
|
inet6_rth_segments;
|
|
|
|
inet6_rth_getaddr;
|
|
|
|
send;
|
|
|
|
sockatmark;
|
|
|
|
in6addr_any;
|
|
|
|
in6addr_loopback;
|
|
|
|
in6addr_nodelocal_allnodes;
|
|
|
|
in6addr_linklocal_allnodes;
|
2007-05-28 11:33:44 +00:00
|
|
|
sctp_getaddrlen;
|
|
|
|
sctp_bindx;
|
|
|
|
sctp_connectx;
|
|
|
|
sctp_peeloff;
|
|
|
|
sctp_opt_info;
|
|
|
|
sctp_getpaddrs;
|
|
|
|
sctp_freepaddrs;
|
|
|
|
sctp_getladdrs;
|
|
|
|
sctp_freeladdrs;
|
|
|
|
sctp_sendmsg;
|
|
|
|
sctp_sendmsgx;
|
|
|
|
sctp_send;
|
|
|
|
sctp_sendx;
|
|
|
|
sctp_recvmsg;
|
Import rewrite of IPv4 socket multicast layer to support source-specific
and protocol-independent host mode multicast. The code is written to
accomodate IPv6, IGMPv3 and MLDv2 with only a little additional work.
This change only pertains to FreeBSD's use as a multicast end-station and
does not concern multicast routing; for an IGMPv3/MLDv2 router
implementation, consider the XORP project.
The work is based on Wilbert de Graaf's IGMPv3 code drop for FreeBSD 4.6,
which is available at: http://www.kloosterhof.com/wilbert/igmpv3.html
Summary
* IPv4 multicast socket processing is now moved out of ip_output.c
into a new module, in_mcast.c.
* The in_mcast.c module implements the IPv4 legacy any-source API in
terms of the protocol-independent source-specific API.
* Source filters are lazy allocated as the common case does not use them.
They are part of per inpcb state and are covered by the inpcb lock.
* struct ip_mreqn is now supported to allow applications to specify
multicast joins by interface index in the legacy IPv4 any-source API.
* In UDP, an incoming multicast datagram only requires that the source
port matches the 4-tuple if the socket was already bound by source port.
An unbound socket SHOULD be able to receive multicasts sent from an
ephemeral source port.
* The UDP socket multicast filter mode defaults to exclusive, that is,
sources present in the per-socket list will be blocked from delivery.
* The RFC 3678 userland functions have been added to libc: setsourcefilter,
getsourcefilter, setipv4sourcefilter, getipv4sourcefilter.
* Definitions for IGMPv3 are merged but not yet used.
* struct sockaddr_storage is now referenced from <netinet/in.h>. It
is therefore defined there if not already declared in the same way
as for the C99 types.
* The RFC 1724 hack (specify 0.0.0.0/8 addresses to IP_MULTICAST_IF
which are then interpreted as interface indexes) is now deprecated.
* A patch for the Rhyolite.com routed in the FreeBSD base system
is available in the -net archives. This only affects individuals
running RIPv1 or RIPv2 via point-to-point and/or unnumbered interfaces.
* Make IPv6 detach path similar to IPv4's in code flow; functionally same.
* Bump __FreeBSD_version to 700048; see UPDATING.
This work was financially supported by another FreeBSD committer.
Obtained from: p4://bms_netdev
Submitted by: Wilbert de Graaf (original work)
Reviewed by: rwatson (locking), silence from fenner,
net@ (but with encouragement)
2007-06-12 16:24:56 +00:00
|
|
|
setipv4sourcefilter;
|
|
|
|
getipv4sourcefilter;
|
|
|
|
getsourcefilter;
|
|
|
|
setsourcefilter;
|
2006-03-13 00:53:21 +00:00
|
|
|
};
|
|
|
|
|
2007-04-29 14:05:22 +00:00
|
|
|
FBSDprivate_1.0 {
|
2006-03-13 00:53:21 +00:00
|
|
|
_nsdispatch;
|
2007-04-29 14:05:22 +00:00
|
|
|
_nsyyerror; /* generated from nslexer.l */
|
|
|
|
_nsyylex; /* generated from nslexer.l */
|
|
|
|
_nsyyparse; /* generated from nsparser.y */
|
|
|
|
_nsyylineno; /* generated from nsparser.y */
|
2006-03-13 00:53:21 +00:00
|
|
|
__dns_getanswer;
|
|
|
|
__ivaliduser;
|
|
|
|
__ivaliduser_af;
|
|
|
|
__ivaliduser_sa;
|
|
|
|
__check_rhosts_file;
|
|
|
|
__rcmd_errstr;
|
2007-05-18 15:41:54 +00:00
|
|
|
__nss_compat_getgrnam_r;
|
|
|
|
__nss_compat_getgrgid_r;
|
|
|
|
__nss_compat_getgrent_r;
|
|
|
|
__nss_compat_setgrent;
|
|
|
|
__nss_compat_endgrent;
|
|
|
|
__nss_compat_getpwnam_r;
|
|
|
|
__nss_compat_getpwuid_r;
|
|
|
|
__nss_compat_getpwent_r;
|
|
|
|
__nss_compat_setpwent;
|
|
|
|
__nss_compat_endpwent;
|
2006-03-13 00:53:21 +00:00
|
|
|
};
|