1 /**
2 * collectd - src/network.h
3 * Copyright (C) 2005,2006 Florian octo Forster
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * Authors:
20 * Florian octo Forster <octo at verplant.org>
21 **/
23 #ifndef NETWORK_H
24 #define NETWORK_H
26 /*
27 * From RFC2365: Administratively Scoped IP Multicast
28 *
29 * The IPv4 Organization Local Scope -- 239.192.0.0/14
30 *
31 * 239.192.0.0/14 is defined to be the IPv4 Organization Local Scope, and is
32 * the space from which an organization should allocate sub-ranges when
33 * defining scopes for private use.
34 *
35 * Port 25826 is not assigned as of 2005-09-12
36 */
38 /*
39 * From RFC2373: IP Version 6 Addressing Architecture
40 *
41 * 2.7 Multicast Addresses
42 *
43 * | 8 | 4 | 4 | 80 bits | 32 bits |
44 * +--------+----+----+---------------------------+-----------------+
45 * |11111111|flgs|scop| reserved must be zero | group ID |
46 * +--------+----+----+---------------------------+-----------------+
47 *
48 * flgs = 1 => non-permanently-assigned ("transient") multicast address.
49 * scop = 8 => organization-local scope
50 *
51 * group = efc0:4a42 = 239.192.74.66
52 */
54 #define NET_DEFAULT_V4_ADDR "239.192.74.66"
55 #define NET_DEFAULT_V6_ADDR "ff18::efc0:4a42"
56 #define NET_DEFAULT_PORT "25826"
58 int network_create_socket (const char *node, const char *service);
59 int network_receive (char **host, char **type, char **instance, char **value);
60 int network_send (char *type, char *instance, char *value);
62 #endif /* NETWORK_H */