Commit Graph

34 Commits

Author SHA1 Message Date
hrs
0796dbc180 - Improve interface list handling. The rtadvd(8) now supports dynamically-
added/removed interfaces in a more consistent manner and reloading the
  configuration file.

- Implement burst unsolicited RA sending into the internal RA timer framework
  when AdvSendAdvertisements and/or configuration entries are changed as
  described in RFC 4861 6.2.4.  This fixes issues that make termination of the
  rtadvd(8) daemon take very long time.

  An interface now has three internal states, UNCONFIGURED, TRANSITIVE, or
  CONFIGURED, and the burst unsolicited sending happens in TRANSITIVE.
  See rtadvd.h for the details.

- rtadvd(8) now accepts non-existent interfaces as well in the command line.

- Add control socket support and rtadvctl(8) utility to show the RA information
  in rtadvd(8).  Dumping by SIGUSR1 has been removed in favor of it.
2011-07-17 19:24:54 +00:00
hrs
cdcbea6ad2 - Refactoring the interface list. It now supports dynamically
added/removed interfaces in a more consistent manner and reloading
  the configuration file.

- Add initial support for control socket.  RA information in the
  daemon can be obtained by rtadvctl(8) instead of SIGUSR1 in a similar
  manner to ifconfig(8).  The information dump has been removed in favor of it.

  (reload the configuration file)
  # rtadvctl reload

  (show RA messages being sent on each interfaces)
  # rtadvctl show
  em0: flags=<UP,CONFIGURED,PERSIST> status=<RA_SEND> mtu 1280
        DefaultLifetime: 30m
        MinAdvInterval/MaxAdvInterval: 3m20s/3m20s
        AdvLinkMTU: <none>, Flags: O, Preference: medium
        ReachableTime: 0s, RetransTimer: 0s, CurHopLimit: 64
        AdvIfPrefixes: yes

  (show RA messages being sent only on em0)
  # rtadvctl show em0

  (rtadvctl -v show provides additional information)
  # rtadvctl -v show em0
  em0: flags=<UP,CONFIGURED,PERSIST> status=<RA_SEND> mtu 1280
        DefaultLifetime: 30m
        MinAdvInterval/MaxAdvInterval: 3m20s/3m20s
        AdvLinkMTU: <none>, Flags: O, Preference: medium
        ReachableTime: 0s, RetransTimer: 0s, CurHopLimit: 64
        AdvIfPrefixes: yes
        Prefixes (1):
          2001:db8:1::/64 (CONFIG, vltime=30d, pltime=7d, flags=LA)
        RDNSS entries:
          2001:db8:1::128 (ltime=2m40s)

  (stop rtadvd)
  # rtadvctl shutdown

  A remaining issue when reloading the configuration file is that
  during that period rtadvd cannot communicate with rtadvctl due to some
  additional RA sending for graceful shutdown.  This will be fixed later.
2011-07-14 10:09:58 +00:00
hrs
440c37ac62 Support SIGHUP for reloading /etc/rtadvd.conf. 2011-06-11 03:25:10 +00:00
hrs
9f4e390038 - Use ELM_MALLOC() for struct rainfo.
- Fix a missing back pointer assignment in struct prefix to struct rainfo
  when addr="" is specified.  This caused SIGSEGV.

- Insert a prefix element to a tail queue after setting parameters.
2011-06-07 12:00:29 +00:00
hrs
5eef59f051 Fix build on 64-bit arch.
Submitted by:	dim
Pointy hat to:	hrs
2011-06-06 10:51:00 +00:00
hrs
10df0af5a5 - Implement RDNSS and DNSSL options (RFC 6106, IPv6 Router Advertisement
Options for DNS Configuration) into rtadvd(8) and rtsold(8).  DNS
  information received by rtsold(8) will go to resolv.conf(5) by
  resolvconf(8) script.  This is based on work by J.R. Oldroyd (kern/156259)
  but revised extensively[1].

- rtadvd(8) now supports "noifprefix" to disable gathering on-link prefixes
  from interfaces when no "addr" is specified[2].  An entry in rtadvd.conf
  with "noifprefix" + no "addr" generates an RA message with no prefix
  information option.

- rtadvd(8) now supports RTM_IFANNOUNCE message to fix crashes when an
  interface is added or removed.

- Correct bogus ND_OPT_ROUTE_INFO value to one in RFC 4191.

Reviewed by:	bz[1]
PR:		kern/156259 [1]
PR:		bin/152458 [2]
2011-06-06 03:06:43 +00:00
kevlo
fa3791e1a7 Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
suz
20b21e2a36 avoid heap overrun
Obtained from: KAME
MFC after: 1 day
2006-03-23 14:39:38 +00:00
suz
7c337042be fixed a typo in comment 2005-11-17 02:34:50 +00:00
suz
7cb7aed97b added an ioctl option in kernel so that ndp/rtadvd can change some NDP-related kernel variables based on their configurations (RFC2461 p.43 6.2.1 mandates this for IPv6 routers)
Obtained from: KAME
Reviewd by: ume, gnn
MFC after: 2 weeks
2005-10-19 15:05:42 +00:00
suz
1180ce1062 removed compilation warning
PR:	bin/71624
2004-10-22 07:31:12 +00:00
ume
448f6abd90 - supported a string notation for xxflags.
- deprecate routes#N, as it is hard to keep consistency with
  rtprefixN.  accept any number of "rtprefix", "rtrefix0",
  ..., "rtprefix99".
- deprecate "addrs#N", as it is difficult for users to keep
  consistency with "addrN".
  accept 100 prefix info in maximum - like "addr", "addr0"
  ... "addr99".  WARNS=2 clean on netbsd.
  old configuration file should work just fine.
  behavior change:
  previously, we rejected "addrN" if there's "addr", and we rejected
  "addr" if there is "addrN".  now we accept both without problem.
- when an advertised prefix configured from the kernel has been added
  or invalidated, notice the change in a short delay.
- when invalidating a prefix, do not bark even if there is
  inconsistency about prefix lifetimes.
- wrap more specific route info code into ROUTEINFO.

Obtained from:	KAME
MFC after:	1 week
2003-08-15 19:13:53 +00:00
ume
5ac4d3d0e1 malloc() may return NULL.
Obtained from:	KAME
MFC after:	1 week
2003-08-12 16:58:32 +00:00
ume
a3738aa5cf reduce #ifdef.
MFC after:	1 week
2003-08-11 15:51:54 +00:00
ume
44f95bb1cf use strlcpy() and snprintf().
Obtained from:	KAME
MFC after:	1 week
2003-08-11 15:49:47 +00:00
ume
8fcac13acd use int64_t instead of long long.
Obtained from:	KAME
MFC after:	1 week
2003-08-11 15:46:37 +00:00
ume
59b29c0142 Drop MIP6 code. We don't support MIP6 yet.
MFC after:	1 week
2003-08-08 20:14:28 +00:00
ume
958362f6a8 KNF, correct typos and cleanup spaces.
Obtained from:	KAME
MFC after:	1 week
2003-08-08 16:56:01 +00:00
ume
52b4a696e0 __FUNCTION__ --> __func__
Obtained from:	KAME
MFC after:	1 week
2003-08-08 16:38:23 +00:00
suz
4b545f73d3 - fixed byte order of route lifetimes in route info opptions.
- corrected wording in a log message.

Obtained from: KAME
MFC after: 1 week
2003-04-10 07:31:34 +00:00
njl
29be5a9beb Use assignment, not equivalence test.
No response from:	suz
2003-04-05 20:54:54 +00:00
suz
bd1430b43c fixed invalid pointer reference
Obtained from: KAME
2003-04-02 11:35:51 +00:00
schweikh
86f7487fb6 Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/
Add FreeBSD Id tag where missing.
2002-12-30 21:18:15 +00:00
ume
adc2ddac9e Do not issue deprecated ioctl.
Obtained from:	KAME
MFC after:	2 weeks
2002-06-15 18:56:32 +00:00
ume
a748c14225 Changed the behavior when an interface-direct prefix being advertised
was removed from the kernel;
Advertise the prefix with zero lifetimes rather than to remove the prefix
from the prefix list to be advertised.
This will help renumber a receiving host by deprecating the address
derived from the old prefix.

Obtained from:	KAME
MFC after:	2 weeks
2002-06-13 16:59:31 +00:00
ume
887cd7c01d Skip duplicated prefixes in get_prefix().
Obtained from:	KAME
2002-06-01 19:16:13 +00:00
ume
4f54232f46 sprintf -> snprintf
Obtained from:	KAME
2002-06-01 16:50:21 +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
ume
b20ff50272 zero-cleared allocated prefix information when configured.
Obtained from:	KAME
2001-01-23 17:29:12 +00:00
itojun
a458f7bcea make it easier to handle $FreeBSD$ tags (amount of diff matters). 2001-01-21 15:25:46 +00:00
kris
be25e6d5a3 Sync with latest KAME
Obtained from:	KAME
2000-07-05 22:09:50 +00:00
shin
48f6832d33 Added several socket close() which were mistakenly forgotten.
Reported by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
2000-03-09 14:51:05 +00:00
shin
a0c9aca93b Forbid include of soem inet6 header files from wrong place
KAME put INET6 related stuff into sys/netinet6 dir, but IPv6
  standard API(RFC2553) require following files to be under sys/netinet.
    netinet/ip6.h
    netinet/icmp6.h
  Now those header files just include each following files.
    netinet6/ip6.h
    netinet6/icmp6.h

  Also KAME has netinet6/in6.h for easy INET6 common defs
  sharing between different BSDs, but RFC2553 requires only
  netinet/in.h should be included from userland.
  So netinet/in.h also includes netinet6/in6.h inside.

  To keep apps portability, apps should not directly include
  above files from netinet6 dir.
  Ideally, all contents of,
    netinet6/ip6.h
    netinet6/icmp6.h
    netinet6/in6.h
  should be moved into
    netinet/ip6.h
    netinet/icmp6.h
    netinet/in.h
  but to avoid big changes in this stage, add some hack, that
    -Put some special macro define into those files under neitnet
    -Let files under netinet6 cause error if it is included
     from some apps, and, if the specifal macro define is not
     defined.
     (which should have been defined if files under netinet is
     included)
    -And let them print an error message which tells the
     correct name of the include file to be included.

  Also fix apps which includes invalid header files.

Approved by: jkh

Obtained from: KAME project
2000-02-10 19:33:58 +00:00
shin
9b5932fc47 libipsec and IPsec related apps. (and some KAME related man pages)
Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project
2000-01-06 12:40:54 +00:00