/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _NDPD_TABLES_H
#define _NDPD_TABLES_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ndpd.h>
#include <libipadm.h>
ADV_TIMER };
/*
* A doubly linked list of all physical interfaces that each contain a
* doubly linked list of prefixes (i.e. logical interfaces) and default
* routers.
*/
struct phyint {
/* Applies if pi_AdvSendAdvertisements */
/* Applies if not pi_AdvSendAdvertisements */
/* Interface specific configurable variables */
/* Recorded variables for RFC3041 addresses */
/*
* The above value should be a uniformly-distributed random
* value between ND_MIN_RANDOM_FACTOR and
* ND_MAX_RANDOM_FACTOR times BaseReachableTime
* milliseconds. A new random value should be
* calculated when BaseReachableTime changes (due to
* Router Advertisements) or at least every few hours
* even if no Router Advertisements are received.
* Tracked using pi_each_time_since_random.
*/
};
/*
* pi_state/pr_kernel_state values
*/
/*
* Prefix configuration variable indices
*/
/*
* A doubly-linked list of prefixes for onlink and addrconf.
* ("Prefixes" in this context are identical to logical interfaces.)
*/
struct prefix {
/* in SECONDS */
};
/*
* Flags used for pr_kernel_state and pr_state where the latter is
* user-level state.
*/
/*
* The sum of all possible state string lengths, plus terminating
* null character; if new states are added, this needs to be updated.
* Useful for passing an appropriately sized buffer to prefix_print_state().
*
* Current strings: "ONLINK ", "AUTO ", "DEPRECATED ", "STATIC ", "\n"
* 7 + 5 + 11 + 7 + 1
*/
/* Prefix used for storing advertisement specific stuff */
struct adv_prefix {
/* Used when sending advertisements */
#define adv_pr_AdvPreferredLifetime \
#define adv_pr_AdvAutonomousFlag \
#define adv_pr_AdvValidExpiration \
#define adv_pr_AdvPreferredExpiration \
/* The two below are set if the timers decrement in real time */
#define adv_pr_AdvValidRealTime \
#define adv_pr_AdvPreferredRealTime \
};
/*
* Doubly-linked list of default routers on a phyint.
*/
struct router {
};
/*
* Globals
*/
extern int num_of_phyints;
/*
* Functions
*/
extern uint_t getcurrenttime(void);
extern void phyint_print_all(void);
int bits);
int bits);
enum solicit_events event);
struct sockaddr_in6 *addr);
struct sockaddr_in6 *addr);
#ifdef __cplusplus
}
#endif
#endif /* _NDPD_TABLES_H */