source: rtems-libbsd/dhcpcd/net.h @ f2ed769

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since f2ed769 was f2ed769, checked in by Sebastian Huber <sebastian.huber@…>, on 01/30/14 at 12:29:46

DHCPCD(8): Import

Import DHCPCD(8) from:

http://roy.marples.name/projects/dhcpcd/

The upstream sources can be obtained via:

fossil clone http://roy.marples.name/projects/dhcpcd

The imported version is 2014-01-29 19:46:44 [6b209507bb].

  • Property mode set to 100644
File size: 3.2 KB
Line 
1/*
2 * dhcpcd - DHCP client daemon
3 * Copyright (c) 2006-2013 Roy Marples <roy@marples.name>
4 * All rights reserved
5
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 */
27
28#ifndef INTERFACE_H
29#define INTERFACE_H
30
31#include <sys/socket.h>
32
33#include <net/if.h>
34#include <netinet/in.h>
35#include <netinet/if_ether.h>
36
37#include "config.h"
38#include "dhcp.h"
39#include "dhcpcd.h"
40#include "ipv6.h"
41
42/* Some systems have route metrics */
43#ifndef HAVE_ROUTE_METRIC
44# ifdef __linux__
45#  define HAVE_ROUTE_METRIC 1
46# endif
47# ifndef HAVE_ROUTE_METRIC
48#  define HAVE_ROUTE_METRIC 0
49# endif
50#endif
51
52#ifndef DUID_LEN
53#  define DUID_LEN                      128 + 2
54#endif
55
56#define EUI64_ADDR_LEN                  8
57#define INFINIBAND_ADDR_LEN             20
58
59/* Linux 2.4 doesn't define this */
60#ifndef ARPHRD_IEEE1394
61#  define ARPHRD_IEEE1394               24
62#endif
63
64/* The BSD's don't define this yet */
65#ifndef ARPHRD_INFINIBAND
66#  define ARPHRD_INFINIBAND             32
67#endif
68
69/* Work out if we have a private address or not
70 * 10/8
71 * 172.16/12
72 * 192.168/16
73 */
74#ifndef IN_PRIVATE
75# define IN_PRIVATE(addr) (((addr & IN_CLASSA_NET) == 0x0a000000) ||          \
76            ((addr & 0xfff00000)    == 0xac100000) ||                         \
77            ((addr & IN_CLASSB_NET) == 0xc0a80000))
78#endif
79
80#define LINKLOCAL_ADDR  0xa9fe0000
81#define LINKLOCAL_MASK  IN_CLASSB_NET
82#define LINKLOCAL_BRDC  (LINKLOCAL_ADDR | ~LINKLOCAL_MASK)
83
84#ifndef IN_LINKLOCAL
85# define IN_LINKLOCAL(addr) ((addr & IN_CLASSB_NET) == LINKLOCAL_ADDR)
86#endif
87
88extern int socket_afnet;
89
90int open_sockets(void);
91
92char *hwaddr_ntoa(const unsigned char *, size_t);
93size_t hwaddr_aton(unsigned char *, const char *);
94
95int getifssid(const char *, char *);
96int if_vimaster(const char *);
97struct if_head *discover_interfaces(int, char * const *);
98void free_interface(struct interface *);
99int do_mtu(const char *, short int);
100#define get_mtu(iface) do_mtu(iface, 0)
101#define set_mtu(iface, mtu) do_mtu(iface, mtu)
102
103int up_interface(struct interface *);
104int if_conf(struct interface *);
105int if_init(struct interface *);
106
107int open_link_socket(void);
108int manage_link(int);
109int carrier_status(struct interface *);
110#endif
Note: See TracBrowser for help on using the repository browser.