completed pkcs7 parsing methods
[strongswan.git] / src / dumm / iface.h
1 /*
2 * Copyright (C) 2007 Martin Willi
3 * Hochschule fuer Technik Rapperswil
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. See <http://www.fsf.org/copyleft/gpl.txt>.
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 MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * for more details.
14 */
15
16 #ifndef IFACE_H
17 #define IFACE_H
18
19 #include <library.h>
20 #include <utils/iterator.h>
21
22 #define TAP_DEVICE "/dev/net/tun"
23
24 typedef struct iface_t iface_t;
25
26 #include "mconsole.h"
27 #include "bridge.h"
28
29 /**
30 * @brief Interface in a guest, connected to a tap device on the host.
31 */
32 struct iface_t {
33
34 /**
35 * @brief Get the interface name in the guest (e.g. eth0).
36 *
37 * @return guest interface name
38 */
39 char* (*get_guestif)(iface_t *this);
40
41 /**
42 * @brief Get the interface name at the host (e.g. tap0).
43 *
44 * @return host interface (tap device) name
45 */
46 char* (*get_hostif)(iface_t *this);
47
48 /**
49 * @brief Set the bridge this interface is attached to.
50 *
51 * @param bridge assigned bridge, or NULL for none
52 */
53 void (*set_bridge)(iface_t *this, bridge_t *bridge);
54
55 /*
56 bool (*up) (iface_t *this);
57 bool (*down) (iface_t *this);
58 bool (*add_addr) (iface_t *this, host_t *addr);
59 iterator_t* (*create_addr_iterator) (iface_t *this);
60 */
61
62 /**
63 * @brief Destroy an interface
64 */
65 void (*destroy) (iface_t *this);
66 };
67
68 /**
69 * @brief Create a new interface for a guest
70 *
71 * @param guest name of the guest for this interface
72 * @param guestif name of the interface in the guest
73 * @param mconsole mconsole of guest
74 * @return interface descriptor, or NULL if failed
75 */
76 iface_t *iface_create(char *guest, char *guestif, mconsole_t *mconsole);
77
78 #endif /* IFACE_H */
79