#ifndef _IN_RIPNGD_DEFS_H
#define _IN_RIPNGD_DEFS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/stream.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <netinet/ip6.h>
#include <netinet/udp.h>
#include <net/if.h>
#include <net/route.h>
#include <protocols/ripngd.h>
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <netdb.h>
#include <signal.h>
#include <stropts.h>
#include <arpa/inet.h>
#include <strings.h>
#include <unistd.h>
#include <errno.h>
#include <malloc.h>
#include <limits.h>
#include "table.h"
#include "trace.h"
#include "interface.h"
#define PATH_PID "/var/run/in.ripngd.pid"
#define EXPIRE_TIME 180
#define GARBAGE_TIME 300
#define MIN_SUPPLY_TIME 15
#define MAX_SUPPLY_TIME 45
#define MIN_WAIT_TIME 1
#define MAX_WAIT_TIME 5
#define GET_RANDOM(LOW, HIGH) (random() % ((HIGH) - (LOW) + 1) + (LOW))
#define CHECK_INTERVAL 60
#define START_POLL_SIZE 5
#define min(a, b) ((a) > (b) ? (b) : (a))
#define RCVBUFSIZ 65536
#define TIME_TO_MSECS(tval) ((tval).tv_sec * 1000 + (tval).tv_usec / 1000)
#define HOPCNT_INFINITY 16
#define HOPCNT_NEXTHOP 255
#define IPV6_MAX_HOPS 255
#define IPV6_MAX_PACKET 65535
#define IPV6_MIN_MTU 1280
extern struct sockaddr_in6 allrouters;
extern struct in6_addr allrouters_in6;
extern char *control;
extern boolean_t dopoison;
extern struct interface *ifnet;
extern boolean_t install;
extern int iocsoc;
extern struct timeval lastfullupdate;
extern struct timeval lastmcast;
extern int max_poll_ifs;
extern struct rip6 *msg;
extern boolean_t needupdate;
extern struct timeval nextmcast;
extern struct timeval now;
extern char *packet;
extern struct pollfd *poll_ifs;
extern int poll_ifs_num;
extern int rip6_port;
extern int supplyinterval;
extern boolean_t supplier;
extern void dynamic_update(struct interface *);
extern void in_data(struct interface *);
extern void initifs(void);
extern void sendpacket(struct sockaddr_in6 *, struct interface *,
int, int);
extern void setup_rtsock(void);
extern void solicitall(struct sockaddr_in6 *);
extern void supply(struct sockaddr_in6 *, struct interface *,
int, boolean_t);
extern void supplyall(struct sockaddr_in6 *, int,
struct interface *, boolean_t);
extern void term(void);
extern void timer(void);
extern void timevaladd(struct timeval *, struct timeval *);
#ifdef __cplusplus
}
#endif
#endif