~ubuntu-branches/ubuntu/quantal/lxc/quantal-201208301614

« back to all changes in this revision

Viewing changes to src/lxc/conf.h

  • Committer: Bazaar Package Importer
  • Author(s): Guido Trotter
  • Date: 2010-01-10 10:40:21 UTC
  • mto: (1.1.2 upstream) (3.1.2 sid)
  • mto: This revision was merged to the branch mainline in revision 5.
  • Revision ID: james.westby@ubuntu.com-20100110104021-ff3ukvpu7yzc36hm
ImportĀ upstreamĀ versionĀ 0.6.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include <netinet/in.h>
27
27
#include <sys/param.h>
28
28
 
 
29
#include <lxc/list.h>
 
30
 
29
31
enum {
30
32
        EMPTY,
31
33
        VETH,
69
71
};
70
72
/*
71
73
 * Defines a structure to configure a network device
72
 
 * @ifname : network device name
 
74
 * @link   : lxc.network.link, name of bridge or host iface to attach if any
 
75
 * @name   : lxc.network.name, name of iface on the container side
73
76
 * @flags  : flag of the network device (IFF_UP, ... )
74
77
 * @ipv4   : a list of ipv4 addresses to be set on the network device
75
78
 * @ipv6   : a list of ipv6 addresses to be set on the network device
76
79
 */
77
80
struct lxc_netdev {
 
81
        int type;
78
82
        int flags;
79
 
        char *ifname;
80
 
        char *newname;
 
83
        int ifindex;
 
84
        char *link;
 
85
        char *name;
81
86
        char *hwaddr;
82
87
        char *mtu;
83
88
        struct lxc_list ipv4;
84
89
        struct lxc_list ipv6;
85
 
        struct lxc_list route4;
86
 
        struct lxc_list route6;
87
 
};
88
 
 
89
 
/*
90
 
 * Defines the kind of the network to use
91
 
 * @type : the type of the network virtualization
92
 
 * @phys : phys configuration type
93
 
 * @veth : veth configuration type
94
 
 * @macvlan : macvlan configuration type
95
 
 */
96
 
struct lxc_network {
97
 
        int type;
98
 
        struct lxc_list netdev;
99
90
};
100
91
 
101
92
/*
110
101
};
111
102
 
112
103
/*
113
 
 * Defines the global container configuration
114
 
 * @rootfs  : the root directory to run the container
115
 
 * @mount   : the list of mount points
116
 
 * @network : the network configuration
117
 
 * @utsname : the container utsname
118
 
 */
119
 
struct lxc_conf {
120
 
        char *rootfs;
121
 
        char *fstab;
122
 
        int tty;
123
 
        int pts;
124
 
        struct utsname *utsname;
125
 
        struct lxc_list cgroup;
126
 
        struct lxc_list networks;
127
 
};
128
 
 
129
 
/*
130
104
 * Defines a structure containing a pty information for
131
105
 * virtualizing a tty
132
106
 * @name   : the path name of the slave pty side
151
125
};
152
126
 
153
127
/*
 
128
 * Defines the global container configuration
 
129
 * @rootfs  : the root directory to run the container
 
130
 * @mount   : the list of mount points
 
131
 * @network : the network configuration
 
132
 * @utsname : the container utsname
 
133
 */
 
134
struct lxc_conf {
 
135
        char *rootfs;
 
136
        char *fstab;
 
137
        int tty;
 
138
        int pts;
 
139
        struct utsname *utsname;
 
140
        struct lxc_list cgroup;
 
141
        struct lxc_list network;
 
142
        struct lxc_list mount_list;
 
143
        struct lxc_tty_info tty_info;
 
144
        char console[MAXPATHLEN];
 
145
};
 
146
 
 
147
/*
154
148
 * Initialize the lxc configuration structure
155
149
 */
156
150
extern int lxc_conf_init(struct lxc_conf *conf);
157
151
 
158
 
/*
159
 
 * Configure the external resources for the container
160
 
 */
161
 
extern int lxc_configure(const char *name, struct lxc_conf *conf);
162
 
 
163
 
/*
164
 
 * Remove the resources created by the configuration
165
 
 */
166
 
extern int lxc_unconfigure(const char *name);
167
 
 
168
 
extern int conf_create_network(const char *name, pid_t pid);
169
 
 
170
 
extern int conf_destroy_network(const char *name);
171
 
 
172
 
extern int lxc_create_tty(const char *name, struct lxc_tty_info *tty_info);
 
152
extern int lxc_create_network(struct lxc_list *networks);
 
153
extern int lxc_assign_network(struct lxc_list *networks, pid_t pid);
 
154
 
 
155
extern int lxc_create_tty(const char *name, struct lxc_conf *conf);
173
156
extern void lxc_delete_tty(struct lxc_tty_info *tty_info);
174
157
 
175
158
/*
176
159
 * Configure the container from inside
177
160
 */
178
 
extern int lxc_setup(const char *name, const char *tty,
179
 
                     const struct lxc_tty_info *tty_info);
 
161
 
 
162
struct lxc_handler;
 
163
 
 
164
extern int lxc_setup(const char *name, struct lxc_conf *lxc_conf);
180
165
 
181
166
extern int conf_has(const char *name, const char *info);
182
167