1/*-
2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
--- 16 unchanged lines hidden (view full) ---
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * $KAME: nd6_nbr.c,v 1.86 2002/01/21 02:33:04 jinmei Exp $
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/netinet6/nd6_nbr.c 238092 2012-07-04 07:37:53Z glebius $");
34
35#include "opt_inet.h"
36#include "opt_inet6.h"
37#include "opt_ipsec.h"
38#include "opt_mpath.h"
39
40#include <sys/param.h>
41#include <sys/systm.h>
--- 1284 unchanged lines hidden (view full) ---
1326 dp = NULL;
1327 ifa_free(ifa);
1328}
1329
1330static void
1331nd6_dad_timer(struct dadq *dp)
1332{
1333 CURVNET_SET(dp->dad_vnet);
1334 int s;
1335 struct ifaddr *ifa = dp->dad_ifa;
1336 struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
1337 char ip6buf[INET6_ADDRSTRLEN];
1338
1339 s = splnet(); /* XXX */
1340
1341 /* Sanity check */
1342 if (ia == NULL) {
1343 log(LOG_ERR, "nd6_dad_timer: called with null parameter\n");
1344 goto done;
1345 }
1346 if (ia->ia6_flags & IN6_IFF_DUPLICATED) {
1347 log(LOG_ERR, "nd6_dad_timer: called with duplicated address "
1348 "%s(%s)\n",
--- 70 unchanged lines hidden (view full) ---
1419 TAILQ_REMOVE(&V_dadq, (struct dadq *)dp, dad_list);
1420 free(dp, M_IP6NDP);
1421 dp = NULL;
1422 ifa_free(ifa);
1423 }
1424 }
1425
1426done:
1427 splx(s);
1428 CURVNET_RESTORE();
1429}
1430
1431void
1432nd6_dad_duplicated(struct ifaddr *ifa)
1433{
1434 struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
1435 struct ifnet *ifp;
--- 150 unchanged lines hidden ---
2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
--- 16 unchanged lines hidden (view full) ---
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * $KAME: nd6_nbr.c,v 1.86 2002/01/21 02:33:04 jinmei Exp $
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/netinet6/nd6_nbr.c 238092 2012-07-04 07:37:53Z glebius $");
34
35#include "opt_inet.h"
36#include "opt_inet6.h"
37#include "opt_ipsec.h"
38#include "opt_mpath.h"
39
40#include <sys/param.h>
41#include <sys/systm.h>
--- 1284 unchanged lines hidden (view full) ---
1326 dp = NULL;
1327 ifa_free(ifa);
1328}
1329
1330static void
1331nd6_dad_timer(struct dadq *dp)
1332{
1333 CURVNET_SET(dp->dad_vnet);
1334 int s;
1335 struct ifaddr *ifa = dp->dad_ifa;
1336 struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
1337 char ip6buf[INET6_ADDRSTRLEN];
1338
1339 s = splnet(); /* XXX */
1340
1341 /* Sanity check */
1342 if (ia == NULL) {
1343 log(LOG_ERR, "nd6_dad_timer: called with null parameter\n");
1344 goto done;
1345 }
1346 if (ia->ia6_flags & IN6_IFF_DUPLICATED) {
1347 log(LOG_ERR, "nd6_dad_timer: called with duplicated address "
1348 "%s(%s)\n",
--- 70 unchanged lines hidden (view full) ---
1419 TAILQ_REMOVE(&V_dadq, (struct dadq *)dp, dad_list);
1420 free(dp, M_IP6NDP);
1421 dp = NULL;
1422 ifa_free(ifa);
1423 }
1424 }
1425
1426done:
1427 splx(s);
1428 CURVNET_RESTORE();
1429}
1430
1431void
1432nd6_dad_duplicated(struct ifaddr *ifa)
1433{
1434 struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
1435 struct ifnet *ifp;
--- 150 unchanged lines hidden ---