]> git.decadent.org.uk Git - odhcp6c.git/blob - src/ra.h
Update license headers
[odhcp6c.git] / src / ra.h
1 /**
2  * Copyright (C) 2012-2013 Steven Barth <steven@midlink.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License v2 as published by
6  * the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  */
14 #pragma once
15
16 #define ALL_IPV6_NODES {{{0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
17                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}}
18
19 #define ALL_IPV6_ROUTERS {{{0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
20                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}}}
21
22 struct icmpv6_opt {
23         uint8_t type;
24         uint8_t len;
25         uint8_t data[6];
26 };
27
28 #define ND_OPT_ROUTE_INFORMATION 24
29
30
31 #define icmpv6_for_each_option(opt, start, end)\
32         for (opt = (struct icmpv6_opt*)(start);\
33         (void*)(opt + 1) <= (void*)(end) && opt->len > 0 &&\
34         (void*)(opt + opt->len) <= (void*)(end); opt += opt->len)
35
36
37 int ra_init(const char *ifname);
38 bool ra_process(void);
39 bool ra_rtnl_process(void);