CONNMAN_IFACE_TYPE_80203 = 1,
CONNMAN_IFACE_TYPE_80211 = 2,
CONNMAN_IFACE_TYPE_WIMAX = 3,
- CONNMAN_IFACE_TYPE_BLUETOOTH = 4,
+ CONNMAN_IFACE_TYPE_MODEM = 4,
+ CONNMAN_IFACE_TYPE_BLUETOOTH = 5,
};
enum connman_iface_flags {
enum connman_iface_state {
CONNMAN_IFACE_STATE_UNKNOWN = 0,
- CONNMAN_IFACE_STATE_ACTIVE = 1,
- CONNMAN_IFACE_STATE_CONNECTED = 2,
- CONNMAN_IFACE_STATE_READY = 3,
+ 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,
+};
+
+enum connman_iface_policy {
+ CONNMAN_IFACE_POLICY_UNKNOWN = 0,
+ CONNMAN_IFACE_POLICY_OFF = 1,
+ CONNMAN_IFACE_POLICY_IGNORE = 2,
+ CONNMAN_IFACE_POLICY_AUTO = 3,
+};
+
+enum connman_ipv4_method {
+ CONNMAN_IPV4_METHOD_UNKNOWN = 0,
+ CONNMAN_IPV4_METHOD_OFF = 1,
+ CONNMAN_IPV4_METHOD_STATIC = 2,
+ CONNMAN_IPV4_METHOD_DHCP = 3,
};
struct connman_ipv4 {
+ enum connman_ipv4_method method;
struct in_addr address;
struct in_addr netmask;
struct in_addr gateway;
char *path;
char *udi;
char *sysfs;
+ char *identifier;
int index;
int carrier;
enum connman_iface_type type;
enum connman_iface_flags flags;
enum connman_iface_state state;
+ enum connman_iface_policy policy;
struct connman_ipv4 ipv4;
struct connman_iface_driver *driver;
printf("[802.11] activate %s\n", data->ifname);
- connman_iface_update(iface, CONNMAN_IFACE_STATE_ACTIVE);
+ connman_iface_update(iface, CONNMAN_IFACE_STATE_ENABLED);
+
+ return 0;
+}
+
+static int iface_shutdown(struct connman_iface *iface)
+{
+ struct iface_data *data = connman_iface_get_data(iface);
+
+ printf("[802.11] shutdown %s\n", data->ifname);
+
+ connman_iface_update(iface, CONNMAN_IFACE_STATE_SHUTDOWN);
return 0;
}
.probe = iface_probe,
.remove = iface_remove,
.activate = iface_activate,
+ .shutdown = iface_shutdown,
.scan = iface_scan,
.connect = iface_connect,
.set_network = iface_set_network,
enum connman_iface_state state)
{
switch (state) {
- case CONNMAN_IFACE_STATE_ACTIVE:
+ case CONNMAN_IFACE_STATE_ENABLED:
if (iface->type == CONNMAN_IFACE_TYPE_80211) {
if (iface->driver->connect)
iface->driver->connect(iface, NULL);
}
break;
- case CONNMAN_IFACE_STATE_CONNECTED:
+ case CONNMAN_IFACE_STATE_CARRIER:
__connman_dhcp_request(iface);
break;