~ubuntu-branches/ubuntu/wily/dhcpcd5/wily-proposed

« back to all changes in this revision

Viewing changes to ipv6rs.h

  • Committer: Package Import Robot
  • Author(s): Roy Marples
  • Date: 2013-08-04 08:00:44 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20130804080044-36wi725sqa9658eq
Tags: 6.0.5-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* 
 
1
/*
2
2
 * dhcpcd - DHCP client daemon
3
 
 * Copyright (c) 2006-2011 Roy Marples <roy@marples.name>
 
3
 * Copyright (c) 2006-2013 Roy Marples <roy@marples.name>
4
4
 * All rights reserved
5
5
 
6
6
 * Redistribution and use in source and binary forms, with or without
28
28
#ifndef IPV6RS_H
29
29
#define IPV6RS_H
30
30
 
31
 
int ipv6rs_open(void);
32
 
void ipv6rs_handledata(void *);
 
31
#include <sys/queue.h>
 
32
 
 
33
#include <time.h>
 
34
 
 
35
#include "dhcpcd.h"
 
36
#include "ipv6.h"
 
37
 
 
38
struct ra_opt {
 
39
        TAILQ_ENTRY(ra_opt) next;
 
40
        uint8_t type;
 
41
        struct timeval expire;
 
42
        char *option;
 
43
};
 
44
 
 
45
struct ra {
 
46
        TAILQ_ENTRY(ra) next;
 
47
        struct interface *iface;
 
48
        struct in6_addr from;
 
49
        char sfrom[INET6_ADDRSTRLEN];
 
50
        unsigned char *data;
 
51
        ssize_t data_len;
 
52
        struct timeval received;
 
53
        unsigned char flags;
 
54
        uint32_t lifetime;
 
55
        uint32_t reachable;
 
56
        uint32_t retrans;
 
57
        uint32_t mtu;
 
58
        struct ipv6_addrhead addrs;
 
59
        TAILQ_HEAD(, ra_opt) options;
 
60
 
 
61
        unsigned char *ns;
 
62
        size_t nslen;
 
63
        int nsprobes;
 
64
 
 
65
        int expired;
 
66
};
 
67
 
 
68
extern TAILQ_HEAD(rahead, ra) ipv6_routers;
 
69
 
 
70
struct rs_state {
 
71
        unsigned char *rs;
 
72
        size_t rslen;
 
73
        int rsprobes;
 
74
};
 
75
 
 
76
#define RS_STATE(a) ((struct rs_state *)(ifp)->if_data[IF_DATA_IPV6RS])
 
77
 
 
78
#ifdef INET6
33
79
int ipv6rs_start(struct interface *);
34
80
ssize_t ipv6rs_env(char **, const char *, const struct interface *);
35
 
void ipv6rs_free(struct interface *ifp);
 
81
const struct ipv6_addr * ipv6rs_findprefix(const struct ipv6_addr *);
 
82
int ipv6rs_addrexists(const struct ipv6_addr *);
 
83
void ipv6rs_freedrop_ra(struct ra *, int);
 
84
#define ipv6rs_free_ra(ra) ipv6rs_freedrop_ra((ra),  0)
 
85
#define ipv6rs_drop_ra(ra) ipv6rs_freedrop_ra((ra),  1)
 
86
ssize_t ipv6rs_free(struct interface *);
36
87
void ipv6rs_expire(void *arg);
 
88
int ipv6rs_has_ra(const struct interface *);
 
89
void ipv6rs_handleifa(int, const char *, const struct in6_addr *, int);
 
90
void ipv6rs_drop(struct interface *);
 
91
#else
 
92
#define ipv6rs_start(a) {}
 
93
#define ipv6rs_free(a)
 
94
#define ipv6rs_has_ra(a) 0
 
95
#define ipv6rs_drop(a)
 
96
#endif
 
97
 
37
98
#endif