*
* Connection Manager
*
- * Copyright (C) 2007 Intel Corporation. All rights reserved.
+ * Copyright (C) 2007-2008 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
};
enum connman_iface_flags {
- CONNMAN_IFACE_FLAG_RTNL = (1 << 0),
- CONNMAN_IFACE_FLAG_IPV4 = (1 << 1),
- CONNMAN_IFACE_FLAG_IPV6 = (1 << 2),
- CONNMAN_IFACE_FLAG_CARRIER_DETECT = (1 << 3),
+ CONNMAN_IFACE_FLAG_RTNL = (1 << 0),
+ CONNMAN_IFACE_FLAG_IPV4 = (1 << 1),
+ CONNMAN_IFACE_FLAG_IPV6 = (1 << 2),
+ CONNMAN_IFACE_FLAG_SCANNING = (1 << 3),
+ CONNMAN_IFACE_FLAG_NOCARRIER = (1 << 4),
+
+ CONNMAN_IFACE_FLAG_STARTED = (1 << 16),
+ CONNMAN_IFACE_FLAG_RUNNING = (1 << 17),
+ CONNMAN_IFACE_FLAG_DHCP = (1 << 18),
};
enum connman_iface_state {
CONNMAN_IFACE_STATE_UNKNOWN = 0,
CONNMAN_IFACE_STATE_OFF = 1,
CONNMAN_IFACE_STATE_ENABLED = 2,
- CONNMAN_IFACE_STATE_CONNECT = 3,
- CONNMAN_IFACE_STATE_CONFIG = 4,
- CONNMAN_IFACE_STATE_CARRIER = 5,
- CONNMAN_IFACE_STATE_READY = 6,
- CONNMAN_IFACE_STATE_SHUTDOWN = 7,
+ CONNMAN_IFACE_STATE_SCANNING = 3,
+ CONNMAN_IFACE_STATE_CONNECT = 4,
+ CONNMAN_IFACE_STATE_CONNECTED = 5,
+ CONNMAN_IFACE_STATE_CARRIER = 6,
+ CONNMAN_IFACE_STATE_CONFIGURE = 7,
+ CONNMAN_IFACE_STATE_READY = 8,
+ CONNMAN_IFACE_STATE_SHUTDOWN = 9,
};
enum connman_iface_policy {
CONNMAN_IFACE_POLICY_OFF = 1,
CONNMAN_IFACE_POLICY_IGNORE = 2,
CONNMAN_IFACE_POLICY_AUTO = 3,
+ CONNMAN_IFACE_POLICY_ASK = 4,
};
enum connman_ipv4_method {
};
struct connman_network {
- char *essid;
- char *psk;
+ struct connman_iface *iface;
+ char *path;
+ char *identifier;
+ char *passphrase;
};
struct connman_iface {
char *sysfs;
char *identifier;
int index;
- int carrier;
enum connman_iface_type type;
- enum connman_iface_flags flags;
+ unsigned long flags;
enum connman_iface_state state;
enum connman_iface_policy policy;
struct connman_network network;
struct connman_iface_driver *driver;
void *driver_data;
+ void *rtnl_data;
+
struct {
char *driver;
char *vendor;
struct connman_iface_driver {
const char *name;
const char *capability;
+
int (*probe) (struct connman_iface *iface);
void (*remove) (struct connman_iface *iface);
- int (*activate) (struct connman_iface *iface);
- int (*shutdown) (struct connman_iface *iface);
- int (*get_ipv4) (struct connman_iface *iface,
- struct connman_ipv4 *ipv4);
- int (*set_ipv4) (struct connman_iface *iface,
- struct connman_ipv4 *ipv4);
+
+ int (*start) (struct connman_iface *iface);
+ int (*stop) (struct connman_iface *iface);
+
int (*scan) (struct connman_iface *iface);
int (*connect) (struct connman_iface *iface,
struct connman_network *network);
-
- void (*set_network) (struct connman_iface *iface,
- const char *network);
- void (*set_passphrase) (struct connman_iface *iface,
- const char *passphrase);
+ int (*disconnect) (struct connman_iface *iface);
void (*rtnl_carrier) (struct connman_iface *iface, int carrier);
void (*rtnl_wireless) (struct connman_iface *iface,
iface->driver_data = data;
}
-extern int connman_iface_update(struct connman_iface *iface,
- enum connman_iface_state state);
+extern void connman_iface_indicate_ifup(struct connman_iface *iface);
+extern void connman_iface_indicate_ifdown(struct connman_iface *iface);
+extern void connman_iface_indicate_connected(struct connman_iface *iface);
+extern void connman_iface_indicate_carrier_on(struct connman_iface *iface);
+extern void connman_iface_indicate_carrier_off(struct connman_iface *iface);
+extern void connman_iface_indicate_configured(struct connman_iface *iface);
-extern void connman_iface_indicate_carrier(struct connman_iface *iface,
- int carrier);
+extern void connman_iface_indicate_station(struct connman_iface *iface,
+ const char *name, int strength, int security);
extern int connman_iface_get_ipv4(struct connman_iface *iface,
struct connman_ipv4 *ipv4);