wimax: drop WiMAX support (bgo #747846)

Even Fedora is no longer shipping the WiMAX SDK, so it's likely we'll
eventually accidentally break some of the code in src/devices/wimax/
(if we haven't already). Discussion on the list showed a consensus for
dropping support for WiMAX.

So, remove the SDK checks from configure.ac, remove the WiMAX device
plugin and associated manager support, and deprecate all the APIs.

For compatibility reasons, it is still possible to create and save
WiMAX connections, to toggle the software WiMAX rfkill state, and to
change the "WIMAX" log level, although none of these have any effect,
since no NMDeviceWimax will ever be created.

nmcli was only compiling in support for most WiMAX operations when NM
as a whole was built with WiMAX support, so that code has been removed
now as well. (It is still possible to use nmcli to create and edit
WiMAX connections, but those connections will never be activatable.)
This commit is contained in:
Dan Winship
2015-04-13 17:07:00 -04:00
parent a858b383c3
commit 721e917cb6
37 changed files with 171 additions and 4303 deletions

6
TODO
View File

@@ -347,9 +347,9 @@ connection process.
the best route to go for desktop use-cases as well. Instead of bringing all
available connections up, only bring up the "best" connection at any given
time based on the current priority list (which is rougly Ethernet > WiFi >
3G/Bluetooth/WiMAX). However, to ensure seamless connectivity, when one
connection begins to degrade, the next-best connection should be started before
the current one is terminated, such that there is a small amount of overlap.
3G/Bluetooth). However, to ensure seamless connectivity, when one connection
begins to degrade, the next-best connection should be started before the
current one is terminated, such that there is a small amount of overlap.
Consequently the same behavior should be used when a better connection becomes
available. This behavior should be suspended when special connections like
Internet Connection Sharing ones are started, where clearly the priorities

View File

@@ -161,12 +161,7 @@ static NmcOutputField nmc_fields_settings_names[] = {
NM_SETTING_TEAM_SETTING_NAME","\
NM_SETTING_TEAM_PORT_SETTING_NAME"," \
NM_SETTING_DCB_SETTING_NAME
#if WITH_WIMAX
#define NMC_FIELDS_SETTINGS_NAMES_ALL NMC_FIELDS_SETTINGS_NAMES_ALL_X","\
NM_SETTING_WIMAX_SETTING_NAME
#else
#define NMC_FIELDS_SETTINGS_NAMES_ALL NMC_FIELDS_SETTINGS_NAMES_ALL_X
#endif
/* Active connection data */
/* Available fields for GENERAL group */
@@ -254,11 +249,7 @@ usage (void)
"COMMAND := { show | up | down | add | modify | edit | delete | reload | load }\n\n"
" show [--active] [--order <order spec>]\n"
" show [--active] [--show-secrets] [id | uuid | path | apath] <ID> ...\n\n"
#if WITH_WIMAX
" up [[id | uuid | path] <ID>] [ifname <ifname>] [ap <BSSID>] [nsp <name>] [passwd-file <file with passwords>]\n\n"
#else
" up [[id | uuid | path] <ID>] [ifname <ifname>] [ap <BSSID>] [passwd-file <file with passwords>]\n\n"
#endif
" down [id | uuid | path | apath] <ID> ...\n\n"
" add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS IP_OPTIONS\n\n"
" modify [--temporary] [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+\n\n"
@@ -1793,26 +1784,6 @@ find_device_for_connection (NmCli *nmc,
g_free (bssid_up);
}
#if WITH_WIMAX
if ( found_device
&& nsp
&& !strcmp (con_type, NM_SETTING_WIMAX_SETTING_NAME)
&& NM_IS_DEVICE_WIMAX (dev)) {
const GPtrArray *nsps = nm_device_wimax_get_nsps (NM_DEVICE_WIMAX (dev));
found_device = NULL; /* Mark as not found; set to the device again later, only if NSP matches */
for (j = 0; j < nsps->len; j++) {
NMWimaxNsp *candidate_nsp = g_ptr_array_index (nsps, j);
const char *candidate_name = nm_wimax_nsp_get_name (candidate_nsp);
if (!strcmp (nsp, candidate_name)) {
found_device = dev;
*spec_object = nm_object_get_path (NM_OBJECT (candidate_nsp));
break;
}
}
}
#endif
}
if (found_device) {
@@ -2337,17 +2308,6 @@ do_connection_up (NmCli *nmc, int argc, char **argv)
ap = *argv;
}
#if WITH_WIMAX
else if (strcmp (*argv, "nsp") == 0) {
if (next_arg (&argc, &argv) != 0) {
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto error;
}
nsp = *argv;
}
#endif
else if (strcmp (*argv, "passwd-file") == 0) {
if (next_arg (&argc, &argv) != 0) {
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));

View File

@@ -240,17 +240,10 @@ static NmcOutputField nmc_fields_dev_show_sections[] = {
{"CONNECTIONS", N_("CONNECTIONS"), 0, nmc_fields_dev_show_connections + 1 }, /* 16 */
{NULL, NULL, 0, NULL }
};
#if WITH_WIMAX
#define NMC_FIELDS_DEV_SHOW_SECTIONS_ALL "GENERAL,CAPABILITIES,BOND,TEAM,BRIDGE,VLAN,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,"\
"WIMAX-PROPERTIES,NSP,BLUETOOTH,CONNECTIONS,IP4,DHCP4,IP6,DHCP6"
#define NMC_FIELDS_DEV_SHOW_SECTIONS_COMMON "GENERAL.DEVICE,GENERAL.TYPE,GENERAL.HWADDR,GENERAL.MTU,GENERAL.STATE,"\
"GENERAL.CONNECTION,GENERAL.CON-PATH,WIRED-PROPERTIES,IP4,IP6"
#else
#define NMC_FIELDS_DEV_SHOW_SECTIONS_ALL "GENERAL,CAPABILITIES,BOND,TEAM,BRIDGE,VLAN,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,"\
"BLUETOOTH,CONNECTIONS,IP4,DHCP4,IP6,DHCP6"
#define NMC_FIELDS_DEV_SHOW_SECTIONS_COMMON "GENERAL.DEVICE,GENERAL.TYPE,GENERAL.HWADDR,GENERAL.MTU,GENERAL.STATE,"\
"GENERAL.CONNECTION,GENERAL.CON-PATH,WIRED-PROPERTIES,IP4,IP6"
#endif
/* glib main loop variable - defined in nmcli.c */
@@ -262,11 +255,7 @@ static void
usage (void)
{
g_printerr (_("Usage: nmcli device { COMMAND | help }\n\n"
#if WITH_WIMAX
"COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }\n\n"
#else
"COMMAND := { status | show | connect | disconnect | delete | wifi }\n\n"
#endif
" status\n\n"
" show [<ifname>]\n\n"
" connect <ifname>\n\n"
@@ -276,9 +265,6 @@ usage (void)
" wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [ifname <ifname>]\n"
" [bssid <BSSID>] [name <name>] [private yes|no]\n\n"
" wifi rescan [[ifname] <ifname>]\n\n"
#if WITH_WIMAX
" wimax [list [ifname <ifname>] [nsp <name>]]\n\n"
#endif
));
}
@@ -377,21 +363,6 @@ usage_device_wifi (void)
"the APs, use 'nmcli device wifi list' for that.\n\n"));
}
#if WITH_WIMAX
static void
usage_device_wimax (void)
{
g_printerr (_("Usage: nmcli device wimax { ARGUMENTS | help }\n"
"\n"
"Perform operation on WiMAX devices.\n"
"\n"
"ARGUMENTS := [list [ifname <ifname>] [nsp <name>]]\n"
"\n"
"List available WiMAX NSPs. The 'ifname' and 'nsp' options can be used to\n"
"list networks for a particular interface, or with a specific NSP.\n\n"));
}
#endif
/* quit main loop */
static void
quit (void)
@@ -662,54 +633,6 @@ fill_output_access_point (gpointer data, gpointer user_data)
g_string_free (security_str, FALSE);
}
#if WITH_WIMAX
static void
fill_output_wimax_nsp (NMWimaxNsp *nsp, NmCli *nmc, NMDevice *dev, int idx, guint32 o_flags)
{
NMDeviceWimax *wimax = NM_DEVICE_WIMAX (dev);
char *nsp_name, *quality_str;
const char *ntype;
gboolean active = FALSE;
NmcOutputField *arr;
switch (nm_wimax_nsp_get_network_type (nsp)) {
case NM_WIMAX_NSP_NETWORK_TYPE_HOME:
ntype = _("Home");
break;
case NM_WIMAX_NSP_NETWORK_TYPE_PARTNER:
ntype = _("Partner");
break;
case NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER:
ntype = _("Roaming");
break;
default:
ntype = _("Unknown");
break;
}
if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED) {
if (nsp == nm_device_wimax_get_active_nsp (wimax))
active = TRUE;
}
quality_str = g_strdup_printf ("%u", nm_wimax_nsp_get_signal_quality (nsp));
nsp_name = g_strdup_printf ("NSP[%d]", idx); /* NSP */
arr = nmc_dup_fields_array (nmc_fields_dev_wimax_list,
sizeof (nmc_fields_dev_wimax_list),
o_flags);
set_val_str (arr, 0, nsp_name);
set_val_strc (arr, 1, nm_wimax_nsp_get_name (nsp));
set_val_str (arr, 2, quality_str);
set_val_strc (arr, 3, ntype);
set_val_strc (arr, 4, nm_device_get_iface (dev));
set_val_strc (arr, 5, active ? _("yes") : _("no"));
set_val_strc (arr, 6, nm_object_get_path (NM_OBJECT (nsp)));
g_ptr_array_add (nmc->output_data, arr);
}
#endif
static char *
bluetooth_caps_to_string (NMBluetoothCapabilities caps)
{
@@ -1041,78 +964,6 @@ show_device_info (NMDevice *device, NmCli *nmc)
was_output = TRUE;
}
}
#if WITH_WIMAX
else if (NM_IS_DEVICE_WIMAX (device)) {
/* WIMAX-PROPERTIES */
if (!strcasecmp (nmc_fields_dev_show_sections[section_idx].name, nmc_fields_dev_show_sections[5].name)) {
char *cfreq = NULL, *rssi = NULL, *cinr = NULL, *txpow = NULL;
guint tmp_uint;
gint tmp_int;
/* Field names */
tmpl = nmc_fields_dev_show_wimax_prop;
tmpl_len = sizeof (nmc_fields_dev_show_wimax_prop);
nmc->print_fields.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_SHOW_WIMAX_PROP_ALL,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (nmc->output_data, arr);
/* Center frequency */
tmp_uint = nm_device_wimax_get_center_frequency (NM_DEVICE_WIMAX (device));
if (tmp_uint)
cfreq = g_strdup_printf ("%'.1f MHz", (double) tmp_uint / 1000.0);
/* RSSI */
tmp_int = nm_device_wimax_get_rssi (NM_DEVICE_WIMAX (device));
if (tmp_int)
rssi = g_strdup_printf ("%d dBm", tmp_int);
/* CINR */
tmp_int = nm_device_wimax_get_cinr (NM_DEVICE_WIMAX (device));
if (tmp_int)
cinr = g_strdup_printf ("%d dB", tmp_int);
/* TX Power */
tmp_int = nm_device_wimax_get_tx_power (NM_DEVICE_WIMAX (device));
if (tmp_int)
txpow = g_strdup_printf ("%'.2f dBm", (float) tmp_int / 2.0);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
set_val_strc (arr, 0, nmc_fields_dev_show_sections[5].name); /* "WIMAX-PROPERTIES" */
set_val_str (arr, 1, cfreq);
set_val_str (arr, 2, rssi);
set_val_str (arr, 3, cinr);
set_val_str (arr, 4, txpow);
set_val_strc (arr, 5, nm_device_wimax_get_bsid (NM_DEVICE_WIMAX (device)));
g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */
was_output = TRUE;
}
/* section NSP */
if (!strcasecmp (nmc_fields_dev_show_sections[section_idx].name, nmc_fields_dev_show_sections[6].name)) {
const GPtrArray *nsps;
int g, idx = 1;
tmpl = nmc_fields_dev_wimax_list;
tmpl_len = sizeof (nmc_fields_dev_wimax_list);
nmc->print_fields.indices = parse_output_fields (section_fld ? section_fld : NMC_FIELDS_DEV_WIMAX_LIST_FOR_DEV_LIST,
tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (nmc->output_data, arr);
nsps = nm_device_wimax_get_nsps (NM_DEVICE_WIMAX (device));
for (g = 0; g < nsps->len; g++) {
NMWimaxNsp *nsp = g_ptr_array_index (nsps, g);
fill_output_wimax_nsp (nsp, nmc, device, idx++, NMC_OF_FLAG_SECTION_PREFIX);
}
print_data (nmc); /* Print all data */
was_output = TRUE;
}
}
#endif
/* IP configuration info */
cfg4 = nm_device_get_ip4_config (device);
@@ -2710,228 +2561,6 @@ do_device_wifi (NmCli *nmc, int argc, char **argv)
return nmc->return_value;
}
#if WITH_WIMAX
static void
show_nsp_info (NMDevice *device, NmCli *nmc)
{
const GPtrArray *nsps;
int i, idx = 1;
NmcOutputField *arr;
/* Add headers (field names) */
arr = nmc_dup_fields_array (nmc_fields_dev_wimax_list, sizeof (nmc_fields_dev_wimax_list),
NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (nmc->output_data, arr);
nsps = nm_device_wimax_get_nsps (NM_DEVICE_WIMAX (device));
for (i = 0; i < nsps->len; i++) {
NMWimaxNsp *nsp = g_ptr_array_index (nsps, i);
fill_output_wimax_nsp (nsp, nmc, device, idx++, 0);
}
print_data (nmc); /* Print all data */
nmc_empty_output_fields (nmc);
}
static NMCResultCode
do_device_wimax_list (NmCli *nmc, int argc, char **argv)
{
GError *error = NULL;
NMDevice *device = NULL;
NMWimaxNsp *nsp = NULL;
const char *ifname = NULL;
const char *nsp_user = NULL;
const GPtrArray *devices;
const GPtrArray *nsps;
int i, j;
char *fields_str;
char *fields_all = NMC_FIELDS_DEV_WIMAX_LIST_ALL;
char *fields_common = NMC_FIELDS_DEV_WIMAX_LIST_COMMON;
NmcOutputField *tmpl, *arr;
size_t tmpl_len;
const char *base_hdr = _("WiMAX NSP list");
while (argc > 0) {
if (strcmp (*argv, "ifname") == 0) {
if (next_arg (&argc, &argv) != 0) {
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto error;
}
ifname = *argv;
} else if (strcmp (*argv, "nsp") == 0) {
if (next_arg (&argc, &argv) != 0) {
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto error;
}
nsp_user = *argv;
} else {
g_printerr (_("Unknown parameter: %s\n"), *argv);
}
argc--;
argv++;
}
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
fields_str = fields_common;
else if (!nmc->required_fields || strcasecmp (nmc->required_fields, "all") == 0)
fields_str = fields_all;
else
fields_str = nmc->required_fields;
tmpl = nmc_fields_dev_wimax_list;
tmpl_len = sizeof (nmc_fields_dev_wimax_list);
nmc->print_fields.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error);
if (error) {
g_string_printf (nmc->return_text, _("Error: 'device wimax': %s"), error->message);
g_error_free (error);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto error;
}
devices = nm_client_get_devices (nmc->client);
if (ifname) {
/* Device specified - list only NSPs of this interface */
for (i = 0; i < devices->len; i++) {
NMDevice *candidate = g_ptr_array_index (devices, i);
const char *dev_iface = nm_device_get_iface (candidate);
if (!g_strcmp0 (dev_iface, ifname)) {
device = candidate;
break;
}
}
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
/* Main header name */
nmc->print_fields.header_name = (char *) construct_header_name (base_hdr, ifname);
if (NM_IS_DEVICE_WIMAX (device)) {
if (nsp_user) {
/* Specific NSP requested - list only that */
nsps = nm_device_wimax_get_nsps (NM_DEVICE_WIMAX (device));
for (j = 0, nsp = NULL; j < nsps->len; j++) {
NMWimaxNsp *candidate_nsp = g_ptr_array_index (nsps, j);
const char *candidate_name = nm_wimax_nsp_get_name (candidate_nsp);
char *nsp_up;
nsp_up = g_ascii_strup (nsp_user, -1);
if (!strcmp (nsp_up, candidate_name))
nsp = candidate_nsp;
g_free (nsp_up);
}
if (!nsp) {
g_string_printf (nmc->return_text, _("Error: NSP with name '%s' not found."), nsp_user);
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
/* Add headers (field names) */
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (nmc->output_data, arr);
fill_output_wimax_nsp (nsp, nmc, device, 1, 0);
print_data (nmc); /* Print all data */
} else {
show_nsp_info (device, nmc);
}
} else {
g_string_printf (nmc->return_text, _("Error: Device '%s' is not a WiMAX device."), ifname);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
goto error;
}
} else {
gboolean empty_line = FALSE;
/* List NSPs for all devices */
if (nsp_user) {
/* Specific NSP requested - list only that */
for (i = 0; i < devices->len; i++) {
NMDevice *dev = g_ptr_array_index (devices, i);
int idx = 1;
if (!NM_IS_DEVICE_WIMAX (dev))
continue;
/* Main header name */
nmc->print_fields.header_name = (char *) construct_header_name (base_hdr, nm_device_get_iface (dev));
nmc->print_fields.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
g_ptr_array_add (nmc->output_data, arr);
nsps = nm_device_wimax_get_nsps (NM_DEVICE_WIMAX (dev));
for (j = 0, nsp = NULL; j < nsps->len; j++) {
NMWimaxNsp *candidate_nsp = g_ptr_array_index (nsps, j);
const char *candidate_name = nm_wimax_nsp_get_name (candidate_nsp);
char *nsp_up;
nsp_up = g_ascii_strup (nsp_user, -1);
if (!strcmp (nsp_up, candidate_name)) {
nsp = candidate_nsp;
fill_output_wimax_nsp (nsp, nmc, dev, idx, 0);
}
g_free (nsp_up);
}
if (empty_line)
g_print ("\n"); /* Empty line between devices' NSPs */
print_data (nmc); /* Print all data */
nmc_empty_output_fields (nmc);
empty_line = TRUE;
}
if (!nsp) {
g_string_printf (nmc->return_text, _("Error: Access point with nsp '%s' not found."), nsp_user);
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
} else {
for (i = 0; i < devices->len; i++) {
NMDevice *dev = g_ptr_array_index (devices, i);
/* Main header name */
nmc->print_fields.header_name = (char *) construct_header_name (base_hdr,
nm_device_get_iface (dev));
nmc->print_fields.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, NULL);
if (NM_IS_DEVICE_WIMAX (dev)) {
if (empty_line)
g_print ("\n"); /* Empty line between devices' NSPs */
show_nsp_info (dev, nmc);
empty_line = TRUE;
}
}
}
}
error:
return nmc->return_value;
}
static NMCResultCode
do_device_wimax (NmCli *nmc, int argc, char **argv)
{
if (argc == 0)
nmc->return_value = do_device_wimax_list (nmc, argc-1, argv+1);
else if (argc > 0) {
if (matches (*argv, "list") == 0) {
nmc->return_value = do_device_wimax_list (nmc, argc-1, argv+1);
}
else {
g_string_printf (nmc->return_text, _("Error: 'device wimax' command '%s' is not valid."), *argv);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
}
}
return nmc->return_value;
}
#endif
static gboolean
is_single_word (const char* line)
{
@@ -3086,17 +2715,6 @@ do_devices (NmCli *nmc, int argc, char **argv)
goto opt_error;
nmc->return_value = do_device_wifi (nmc, argc-1, argv+1);
}
#if WITH_WIMAX
else if (matches (*argv, "wimax") == 0) {
if (nmc_arg_is_help (*(argv+1))) {
usage_device_wimax ();
goto usage_exit;
}
if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
goto opt_error;
nmc->return_value = do_device_wimax (nmc, argc-1, argv+1);
}
#endif
else {
usage ();
g_string_printf (nmc->return_text, _("Error: 'dev' command '%s' is not valid."), *argv);

View File

@@ -46,15 +46,9 @@ static NmcOutputField nmc_fields_nm_status[] = {
{"WIMAX", N_("WIMAX"), 10}, /* 11 */
{NULL, NULL, 0}
};
#if WITH_WIMAX
#define NMC_FIELDS_NM_STATUS_ALL "RUNNING,VERSION,STATE,STARTUP,CONNECTIVITY,NETWORKING,WIFI-HW,WIFI,WWAN-HW,WWAN,WIMAX-HW,WIMAX"
#define NMC_FIELDS_NM_STATUS_SWITCH "NETWORKING,WIFI-HW,WIFI,WWAN-HW,WWAN,WIMAX-HW,WIMAX"
#define NMC_FIELDS_NM_STATUS_RADIO "WIFI-HW,WIFI,WWAN-HW,WWAN,WIMAX-HW,WIMAX"
#else
#define NMC_FIELDS_NM_STATUS_ALL "RUNNING,VERSION,STATE,STARTUP,CONNECTIVITY,NETWORKING,WIFI-HW,WIFI,WWAN-HW,WWAN"
#define NMC_FIELDS_NM_STATUS_SWITCH "NETWORKING,WIFI-HW,WIFI,WWAN-HW,WWAN"
#define NMC_FIELDS_NM_STATUS_RADIO "WIFI-HW,WIFI,WWAN-HW,WWAN"
#endif
#define NMC_FIELDS_NM_STATUS_COMMON "STATE,CONNECTIVITY,WIFI-HW,WIFI,WWAN-HW,WWAN"
#define NMC_FIELDS_NM_NETWORKING "NETWORKING"
#define NMC_FIELDS_NM_WIFI "WIFI"
@@ -181,13 +175,8 @@ static void
usage_radio (void)
{
g_printerr (_("Usage: nmcli radio { COMMAND | help }\n\n"
#if WITH_WIMAX
"COMMAND := { all | wifi | wwan | wimax }\n\n"
" all | wifi | wwan | wimax [ on | off ]\n\n"
#else
"COMMAND := { all | wifi | wwan }\n\n"
" all | wifi | wwan [ on | off ]\n\n"
#endif
));
}
@@ -221,18 +210,6 @@ usage_radio_wwan (void)
"Get status of mobile broadband radio switch, or turn it on/off.\n\n"));
}
#if WITH_WIMAX
static void
usage_radio_wimax (void)
{
g_printerr (_("Usage: nmcli radio wimax { ARGUMENTS | help }\n"
"\n"
"ARGUMENTS := [on | off]\n"
"\n"
"Get status of WiMAX radio switch, or turn it on/off.\n\n"));
}
#endif
/* quit main loop */
static void
quit (void)
@@ -327,9 +304,6 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
gboolean net_enabled;
gboolean wireless_hw_enabled, wireless_enabled;
gboolean wwan_hw_enabled, wwan_enabled;
#if WITH_WIMAX
gboolean wimax_hw_enabled, wimax_enabled;
#endif
GError *error = NULL;
const char *fields_str;
const char *fields_all = print_flds ? print_flds : NMC_FIELDS_NM_STATUS_ALL;
@@ -374,10 +348,6 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
wireless_enabled = nm_client_wireless_get_enabled (nmc->client);
wwan_hw_enabled = nm_client_wwan_hardware_get_enabled (nmc->client);
wwan_enabled = nm_client_wwan_get_enabled (nmc->client);
#if WITH_WIMAX
wimax_hw_enabled = nm_client_wimax_hardware_get_enabled (nmc->client);
wimax_enabled = nm_client_wimax_get_enabled (nmc->client);
#endif
nmc->print_fields.header_name = pretty_header_name ? (char *) pretty_header_name : _("NetworkManager status");
arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES);
@@ -394,10 +364,6 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
set_val_strc (arr, 7, wireless_enabled ? _("enabled") : _("disabled"));
set_val_strc (arr, 8, wwan_hw_enabled ? _("enabled") : _("disabled"));
set_val_strc (arr, 9, wwan_enabled ? _("enabled") : _("disabled"));
#if WITH_WIMAX
set_val_strc (arr, 10, wimax_hw_enabled ? _("enabled") : _("disabled"));
set_val_strc (arr, 11, wimax_enabled ? _("enabled") : _("disabled"));
#endif
/* Set colors */
arr[2].color = state_to_color (state);
@@ -408,10 +374,6 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
arr[7].color = wireless_enabled ? NMC_TERM_COLOR_GREEN : NMC_TERM_COLOR_RED;
arr[8].color = wwan_hw_enabled ? NMC_TERM_COLOR_GREEN : NMC_TERM_COLOR_RED;
arr[9].color = wwan_enabled ? NMC_TERM_COLOR_GREEN : NMC_TERM_COLOR_RED;
#if WITH_WIMAX
arr[10].color = wimax_hw_enabled ? NMC_TERM_COLOR_GREEN : NMC_TERM_COLOR_RED;
arr[11].color = wimax_enabled ? NMC_TERM_COLOR_GREEN : NMC_TERM_COLOR_RED;
#endif
g_ptr_array_add (nmc->output_data, arr);
@@ -918,24 +880,6 @@ do_radio (NmCli *nmc, int argc, char **argv)
nm_client_wwan_set_enabled (nmc->client, enable_flag);
}
}
#if WITH_WIMAX
else if (matches (*argv, "wimax") == 0) {
if (nmc_arg_is_help (*(argv+1))) {
usage_radio_wimax ();
goto finish;
}
if (next_arg (&argc, &argv) != 0) {
/* no argument, show current WiMAX state */
nmc_switch_show (nmc, NMC_FIELDS_NM_WIMAX, _("WiMAX radio switch"));
} else {
if (!nmc_switch_parse_on_off (nmc, *(argv-1), *argv, &enable_flag))
goto finish;
nmc->get_client (nmc); /* create NMClient */
nm_client_wimax_set_enabled (nmc->client, enable_flag);
}
}
#endif
else {
usage_radio ();
g_string_printf (nmc->return_text, _("Error: 'radio' command '%s' is not valid."), *argv);

View File

@@ -796,10 +796,10 @@ _nmcli()
;;
r|ra|rad|radi|radio)
if [[ ${#words[@]} -eq 2 ]]; then
_nmcli_compl_COMMAND "$command" all wifi wwan wimax
_nmcli_compl_COMMAND "$command" all wifi wwan
elif [[ ${#words[@]} -eq 3 ]]; then
case "$command" in
a|al|all | w|wi|wif|wifi | ww|wwa|wwan | wim|wima|wimax)
a|al|all | w|wi|wif|wifi | ww|wwa|wwan)
_nmcli_compl_COMMAND "${words[2]}" "on off"
;;
esac
@@ -1243,7 +1243,7 @@ _nmcli()
;;
d|de|dev|devi|devic|device)
if [[ ${#words[@]} -eq 2 ]]; then
_nmcli_compl_COMMAND "$command" status show connect disconnect delete wifi wimax
_nmcli_compl_COMMAND "$command" status show connect disconnect delete wifi
elif [[ ${#words[@]} -gt 2 ]]; then
case "$command" in
s|st|sta|stat|statu|status)
@@ -1294,19 +1294,6 @@ _nmcli()
esac
fi
;;
wim|wima|wimax)
if [[ ${#words[@]} -eq 3 ]]; then
_nmcli_compl_COMMAND "${words[2]}" list
else
case "${words[2]}" in
l|li|lis|list)
_nmcli_array_delete_at words 0 2
OPTIONS=(ifname nsp)
_nmcli_compl_ARGS
;;
esac
fi
;;
esac
fi

View File

@@ -472,31 +472,6 @@ AC_SUBST(UUID_LIBS)
dnl Checks for readline library - used by nmcli
AX_LIB_READLINE
# Intel WiMAX SDK checks
PKG_CHECK_MODULES(IWMX_SDK, [libiWmxSdk-0 >= 1.5.1], [have_wimax=yes],[have_wimax=no])
AC_ARG_ENABLE(wimax, AS_HELP_STRING([--enable-wimax], [enable WiMAX support]),
[enable_wimax=${enableval}], [enable_wimax=${have_wimax}])
if (test "${enable_wimax}" = "yes"); then
if test x"$have_wimax" = x"no"; then
AC_MSG_ERROR(Intel WiMAX SDK is required)
fi
# Ensure the WiMAX stack is built with libnl3; otherwise crashes happen
# due to symbol conflicts
WMX_LIB_PATH=`$PKG_CONFIG --variable=libdir libiWmxSdk-0`
FOO=`ldd $WMX_LIB_PATH/libiWmxSdk.so.0.0.0 | grep libnl-3 2>&1`
if test "$?" != "0"; then
AC_MSG_ERROR([Intel WiMAX stack built with incompatible libnl version!])
fi
AC_SUBST(IWMX_SDK_CFLAGS)
AC_SUBST(IWMX_SDK_LIBS)
AC_DEFINE(WITH_WIMAX, 1, [Define if you have WiMAX support])
else
AC_DEFINE(WITH_WIMAX, 0, [Define if you have WiMAX support])
fi
AM_CONDITIONAL(WITH_WIMAX, test "${enable_wimax}" = "yes")
# Teamd control checks
PKG_CHECK_MODULES(LIBTEAMDCTL, [libteamdctl >= 1.9], [have_teamdctl=yes],[have_teamdctl=no])
AC_ARG_ENABLE(teamdctl, AS_HELP_STRING([--enable-teamdctl], [enable Teamd control support]),
@@ -995,7 +970,6 @@ src/platform/tests/Makefile
src/rdisc/Makefile
src/rdisc/tests/Makefile
src/devices/adsl/Makefile
src/devices/wimax/Makefile
src/devices/bluetooth/Makefile
src/devices/team/Makefile
src/devices/wifi/Makefile
@@ -1100,7 +1074,6 @@ echo
echo "Features:"
echo " wext: $ac_with_wext"
echo " wifi: $enable_wifi"
echo " wimax: $enable_wimax"
echo " ppp: $enable_ppp"
echo " modemmanager-1: $with_modem_manager_1"
echo " concheck: $enable_concheck"

View File

@@ -36,7 +36,6 @@ yum install \
dbus-x11 \
wireless-tools-devel \
polkit-devel \
wimax-devel \
libsoup-devel \
readline-devel \
teamd-devel \

View File

@@ -51,7 +51,7 @@
This part documents the properties and value types of each "Setting"
object that composes the basic unit of NetworkManager configuration,
the "Connection". Each Connection object is simply a dictionary mapping
setting names (like "wimax" or "bluetooth") to a dictionary of
setting names (like "802-3-ethernet" or "bluetooth") to a dictionary of
key/value pairs that represents each itself.
</para>
<xi:include href="settings-spec.xml">

View File

@@ -532,15 +532,15 @@
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
x="338.79584"
x="330"
y="680.04895"
id="text3755-3-5-1-7"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3757-8-00-3-1"
x="338.79584"
x="330"
y="680.04895"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">NMDeviceWimax</tspan></text>
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">NMDeviceInfiniband</tspan></text>
</g>
<g
transform="translate(278.7818,-37.820326)"

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -532,15 +532,15 @@
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
x="338.79584"
x="330"
y="680.04895"
id="text3755-3-5-1-7"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3757-8-00-3-1"
x="338.79584"
x="330"
y="680.04895"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">NMDeviceWimax</tspan></text>
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">NMDeviceInfiniband</tspan></text>
</g>
<g
transform="translate(278.7818,-37.820326)"

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -37,6 +37,10 @@
*
* The #NMSettingWimax object is a #NMSetting subclass that describes properties
* necessary for connection to 802.16e Mobile WiMAX networks.
*
* NetworkManager no longer supports WiMAX; while this API remains available for
* backward-compatibility reasons, it serves no real purpose, since WiMAX
* connections cannot be activated.
**/
G_DEFINE_TYPE_WITH_CODE (NMSettingWimax, nm_setting_wimax, NM_TYPE_SETTING,
@@ -64,6 +68,8 @@ enum {
* Creates a new #NMSettingWimax object with default values.
*
* Returns: the new empty #NMSettingWimax object
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
NMSetting *
nm_setting_wimax_new (void)
@@ -79,6 +85,8 @@ nm_setting_wimax_new (void)
* specific WiMAX network this setting describes a connection to.
*
* Returns: the WiMAX NSP name
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const char *
nm_setting_wimax_get_network_name (NMSettingWimax *setting)
@@ -96,6 +104,8 @@ nm_setting_wimax_get_network_name (NMSettingWimax *setting)
* to.
*
* Returns: the MAC address
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const char *
nm_setting_wimax_get_mac_address (NMSettingWimax *setting)
@@ -217,6 +227,8 @@ nm_setting_wimax_class_init (NMSettingWimaxClass *setting_class)
*
* Network Service Provider (NSP) name of the WiMAX network this connection
* should use.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_NETWORK_NAME,
@@ -231,6 +243,8 @@ nm_setting_wimax_class_init (NMSettingWimaxClass *setting_class)
* If specified, this connection will only apply to the WiMAX device whose
* MAC address matches. This property does not change the MAC address of the
* device (known as MAC spoofing).
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_MAC_ADDRESS,

View File

@@ -53,10 +53,14 @@ typedef struct {
gpointer padding[4];
} NMSettingWimaxClass;
NM_DEPRECATED_IN_1_2
GType nm_setting_wimax_get_type (void);
NM_DEPRECATED_IN_1_2
NMSetting *nm_setting_wimax_new (void);
NM_DEPRECATED_IN_1_2
const char *nm_setting_wimax_get_network_name (NMSettingWimax *setting);
NM_DEPRECATED_IN_1_2
const char *nm_setting_wimax_get_mac_address (NMSettingWimax *setting);
G_END_DECLS

View File

@@ -84,6 +84,8 @@ static guint signals[LAST_SIGNAL] = { 0 };
* Registers an error quark for #NMDeviceWimax if necessary.
*
* Returns: the error quark used for #NMDeviceWimax errors.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
GQuark
nm_device_wimax_error_quark (void)
@@ -103,6 +105,8 @@ nm_device_wimax_error_quark (void)
* Creates a new #NMDeviceWimax.
*
* Returns: (transfer full): a new WiMAX device
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
GObject *
nm_device_wimax_new (DBusGConnection *connection, const char *path)
@@ -128,6 +132,8 @@ nm_device_wimax_new (DBusGConnection *connection, const char *path)
*
* Returns: the hardware address. This is the internal string used by the
* device, and must not be modified.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const char *
nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
@@ -145,6 +151,8 @@ nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
* Gets the active #NMWimaxNsp.
*
* Returns: (transfer full): the access point or %NULL if none is active
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
NMWimaxNsp *
nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
@@ -182,6 +190,8 @@ nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
* Returns: (element-type NMWimaxNsp): a #GPtrArray containing
* all the scanned #NMWimaxNsps.
* The returned array is owned by the client and should not be modified.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const GPtrArray *
nm_device_wimax_get_nsps (NMDeviceWimax *wimax)
@@ -200,6 +210,8 @@ nm_device_wimax_get_nsps (NMDeviceWimax *wimax)
* Gets a #NMWimaxNsp by path.
*
* Returns: (transfer none): the access point or %NULL if none is found.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
NMWimaxNsp *
nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
@@ -264,6 +276,8 @@ clean_up_nsps (NMDeviceWimax *self, gboolean notify)
* device is not connected.
*
* Returns: the center frequency in KHz, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
guint
nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
@@ -284,6 +298,8 @@ nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
* device is not connected.
*
* Returns: the RSSI in dBm, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
gint
nm_device_wimax_get_rssi (NMDeviceWimax *self)
@@ -303,6 +319,8 @@ nm_device_wimax_get_rssi (NMDeviceWimax *self)
* meaning when the device is not connected.
*
* Returns: the CINR in dB, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
gint
nm_device_wimax_get_cinr (NMDeviceWimax *self)
@@ -322,6 +340,8 @@ nm_device_wimax_get_cinr (NMDeviceWimax *self)
* -5.5 dBm. Has no meaning when the device is not connected.
*
* Returns: the TX power in dBm, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
gint
nm_device_wimax_get_tx_power (NMDeviceWimax *self)
@@ -339,6 +359,8 @@ nm_device_wimax_get_tx_power (NMDeviceWimax *self)
* Gets the ID of the serving Base Station when the device is connected.
*
* Returns: the ID of the serving Base Station, or %NULL
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const char *
nm_device_wimax_get_bsid (NMDeviceWimax *self)
@@ -614,6 +636,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* NMDeviceWimax:hw-address:
*
* The hardware (MAC) address of the device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_HW_ADDRESS,
@@ -626,6 +650,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* NMDeviceWimax:active-nsp:
*
* The active #NMWimaxNsp of the device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_ACTIVE_NSP,
@@ -640,6 +666,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* The center frequency (in KHz) of the radio channel the device is using to
* communicate with the network when connected. Has no meaning when the
* device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_CENTER_FREQ,
@@ -655,6 +683,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* the raw received RF signal from the base station is, but does not
* indicate the overall quality of the radio link. Has no meaning when the
* device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_RSSI,
@@ -669,6 +699,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* CINR (Carrier to Interference + Noise Ratio) of the current radio link
* in dB. CINR is a more accurate measure of radio link quality. Has no
* meaning when the device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_CINR,
@@ -683,6 +715,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* Average power of the last burst transmitted by the device, in units of
* 0.5 dBm. i.e. a TxPower of -11 represents an actual device TX power of
* -5.5 dBm. Has no meaning when the device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_TX_POWER,
@@ -696,6 +730,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* The ID of the serving base station as received from the network. Has
* no meaning when the device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_BSID,
@@ -710,6 +746,7 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* List of all WiMAX Network Service Providers the device can see.
*
* Since: 0.9.10
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_NSPS,
@@ -726,6 +763,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* @nsp: the new NSP
*
* Notifies that a #NMWimaxNsp is added to the wimax device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
signals[NSP_ADDED] =
g_signal_new ("nsp-added",
@@ -743,6 +782,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* @nsp: the removed NSP
*
* Notifies that a #NMWimaxNsp is removed from the wimax device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
signals[NSP_REMOVED] =
g_signal_new ("nsp-removed",

View File

@@ -51,6 +51,7 @@ typedef enum {
} NMDeviceWimaxError;
#define NM_DEVICE_WIMAX_ERROR nm_device_wimax_error_quark ()
NM_DEPRECATED_IN_1_2
GQuark nm_device_wimax_error_quark (void);
#define NM_DEVICE_WIMAX_HW_ADDRESS "hw-address"
@@ -74,22 +75,33 @@ typedef struct {
void (*nsp_removed) (NMDeviceWimax *self, NMWimaxNsp *nsp);
} NMDeviceWimaxClass;
NM_DEPRECATED_IN_1_2
GType nm_device_wimax_get_type (void);
NM_DEPRECATED_IN_1_2
GObject *nm_device_wimax_new (DBusGConnection *connection,
const char *path);
NM_DEPRECATED_IN_1_2
const char *nm_device_wimax_get_hw_address (NMDeviceWimax *wimax);
NM_DEPRECATED_IN_1_2
NMWimaxNsp *nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax);
NM_DEPRECATED_IN_1_2
NMWimaxNsp *nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
const char *path);
NM_DEPRECATED_IN_1_2
const GPtrArray *nm_device_wimax_get_nsps (NMDeviceWimax *wimax);
NM_DEPRECATED_IN_1_2
guint nm_device_wimax_get_center_frequency (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
gint nm_device_wimax_get_rssi (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
gint nm_device_wimax_get_cinr (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
gint nm_device_wimax_get_tx_power (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
const char * nm_device_wimax_get_bsid (NMDeviceWimax *self);
G_END_DECLS

View File

@@ -38,6 +38,10 @@
*
* The #NMSettingWimax object is a #NMSetting subclass that describes properties
* necessary for connection to 802.16e Mobile WiMAX networks.
*
* NetworkManager no longer supports WiMAX; while this API remains available for
* backward-compatibility reasons, it serves no real purpose, since WiMAX
* connections cannot be activated.
**/
/**
@@ -46,6 +50,8 @@
* Registers an error quark for #NMSettingWimax if necessary.
*
* Returns: the error quark used for #NMSettingWimax errors.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
GQuark
nm_setting_wimax_error_quark (void)
@@ -86,6 +92,8 @@ enum {
* Creates a new #NMSettingWimax object with default values.
*
* Returns: the new empty #NMSettingWimax object
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
NMSetting *
nm_setting_wimax_new (void)
@@ -101,6 +109,8 @@ nm_setting_wimax_new (void)
* specific WiMAX network this setting describes a connection to.
*
* Returns: the WiMAX NSP name
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const char *
nm_setting_wimax_get_network_name (NMSettingWimax *setting)
@@ -118,6 +128,8 @@ nm_setting_wimax_get_network_name (NMSettingWimax *setting)
* to.
*
* Returns: the MAC address
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const GByteArray *
nm_setting_wimax_get_mac_address (NMSettingWimax *setting)
@@ -240,6 +252,8 @@ nm_setting_wimax_class_init (NMSettingWimaxClass *setting_class)
*
* Network Service Provider (NSP) name of the WiMAX network this connection
* should use.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_NETWORK_NAME,
@@ -254,6 +268,8 @@ nm_setting_wimax_class_init (NMSettingWimaxClass *setting_class)
* If specified, this connection will only apply to the WiMAX device whose
* MAC address matches. This property does not change the MAC address of the
* device (known as MAC spoofing).
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_MAC_ADDRESS,

View File

@@ -49,6 +49,7 @@ typedef enum {
} NMSettingWimaxError;
#define NM_SETTING_WIMAX_ERROR nm_setting_wimax_error_quark ()
NM_DEPRECATED_IN_1_2
GQuark nm_setting_wimax_error_quark (void);
#define NM_SETTING_WIMAX_NETWORK_NAME "network-name"
@@ -62,10 +63,14 @@ typedef struct {
NMSettingClass parent;
} NMSettingWimaxClass;
NM_DEPRECATED_IN_1_2
GType nm_setting_wimax_get_type (void);
NM_DEPRECATED_IN_1_2
NMSetting *nm_setting_wimax_new (void);
NM_DEPRECATED_IN_1_2
const char *nm_setting_wimax_get_network_name (NMSettingWimax *setting);
NM_DEPRECATED_IN_1_2
const GByteArray *nm_setting_wimax_get_mac_address (NMSettingWimax *setting);
G_END_DECLS

View File

@@ -86,6 +86,8 @@ static guint signals[LAST_SIGNAL] = { 0 };
*
* Returns: the hardware address. This is the internal string used by the
* device, and must not be modified.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const char *
nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
@@ -102,6 +104,8 @@ nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
* Gets the active #NMWimaxNsp.
*
* Returns: (transfer full): the access point or %NULL if none is active
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
NMWimaxNsp *
nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
@@ -138,6 +142,8 @@ nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
* Returns: (element-type NMWimaxNsp): a #GPtrArray containing
* all the scanned #NMWimaxNsps.
* The returned array is owned by the client and should not be modified.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const GPtrArray *
nm_device_wimax_get_nsps (NMDeviceWimax *wimax)
@@ -155,6 +161,8 @@ nm_device_wimax_get_nsps (NMDeviceWimax *wimax)
* Gets a #NMWimaxNsp by path.
*
* Returns: (transfer none): the access point or %NULL if none is found.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
NMWimaxNsp *
nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
@@ -208,6 +216,8 @@ clean_up_nsps (NMDeviceWimax *self)
* device is not connected.
*
* Returns: the center frequency in KHz, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
guint
nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
@@ -227,6 +237,8 @@ nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
* device is not connected.
*
* Returns: the RSSI in dBm, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
gint
nm_device_wimax_get_rssi (NMDeviceWimax *self)
@@ -245,6 +257,8 @@ nm_device_wimax_get_rssi (NMDeviceWimax *self)
* meaning when the device is not connected.
*
* Returns: the CINR in dB, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
gint
nm_device_wimax_get_cinr (NMDeviceWimax *self)
@@ -263,6 +277,8 @@ nm_device_wimax_get_cinr (NMDeviceWimax *self)
* -5.5 dBm. Has no meaning when the device is not connected.
*
* Returns: the TX power in dBm, or 0
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
gint
nm_device_wimax_get_tx_power (NMDeviceWimax *self)
@@ -279,6 +295,8 @@ nm_device_wimax_get_tx_power (NMDeviceWimax *self)
* Gets the ID of the serving Base Station when the device is connected.
*
* Returns: the ID of the serving Base Station, or %NULL
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
const char *
nm_device_wimax_get_bsid (NMDeviceWimax *self)
@@ -536,6 +554,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* NMDeviceWimax:hw-address:
*
* The hardware (MAC) address of the device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_HW_ADDRESS,
@@ -548,6 +568,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* NMDeviceWimax:active-nsp:
*
* The active #NMWimaxNsp of the device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_ACTIVE_NSP,
@@ -562,6 +584,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* The center frequency (in KHz) of the radio channel the device is using to
* communicate with the network when connected. Has no meaning when the
* device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_CENTER_FREQ,
@@ -577,6 +601,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* the raw received RF signal from the base station is, but does not
* indicate the overall quality of the radio link. Has no meaning when the
* device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_RSSI,
@@ -591,6 +617,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* CINR (Carrier to Interference + Noise Ratio) of the current radio link
* in dB. CINR is a more accurate measure of radio link quality. Has no
* meaning when the device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_CINR,
@@ -605,6 +633,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* Average power of the last burst transmitted by the device, in units of
* 0.5 dBm. i.e. a TxPower of -11 represents an actual device TX power of
* -5.5 dBm. Has no meaning when the device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_TX_POWER,
@@ -618,6 +648,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* The ID of the serving base station as received from the network. Has
* no meaning when the device is not connected.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
g_object_class_install_property
(object_class, PROP_BSID,
@@ -648,6 +680,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* @nsp: the new NSP
*
* Notifies that a #NMWimaxNsp is added to the wimax device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
signals[NSP_ADDED] =
g_signal_new ("nsp-added",
@@ -665,6 +699,8 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* @nsp: the removed NSP
*
* Notifies that a #NMWimaxNsp is removed from the wimax device.
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
signals[NSP_REMOVED] =
g_signal_new ("nsp-removed",

View File

@@ -61,19 +61,29 @@ typedef struct {
gpointer padding[4];
} NMDeviceWimaxClass;
NM_DEPRECATED_IN_1_2
GType nm_device_wimax_get_type (void);
NM_DEPRECATED_IN_1_2
const char *nm_device_wimax_get_hw_address (NMDeviceWimax *wimax);
NM_DEPRECATED_IN_1_2
NMWimaxNsp *nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax);
NM_DEPRECATED_IN_1_2
NMWimaxNsp *nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
const char *path);
NM_DEPRECATED_IN_1_2
const GPtrArray *nm_device_wimax_get_nsps (NMDeviceWimax *wimax);
NM_DEPRECATED_IN_1_2
guint nm_device_wimax_get_center_frequency (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
gint nm_device_wimax_get_rssi (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
gint nm_device_wimax_get_cinr (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
gint nm_device_wimax_get_tx_power (NMDeviceWimax *self);
NM_DEPRECATED_IN_1_2
const char * nm_device_wimax_get_bsid (NMDeviceWimax *self);
G_END_DECLS

View File

@@ -183,8 +183,8 @@ file in most distributions. For example, systemd-hostnamed service uses the term
.B permissions
.br
Show the permissions a caller has for various authenticated operations that
NetworkManager provides, like enable and disable networking, changing Wi\(hyFi,
WWAN, and WiMAX state, modifying connections, etc.
NetworkManager provides, like enable and disable networking, changing Wi\(hyFi
and WWAN state, modifying connections, etc.
.TP
.B logging [level <log level>] [domains <log domains>]
.br
@@ -239,7 +239,7 @@ Possible states are:
Use this object to show radio switches status, or enable and disable
the switches.
.TP
.SS \fICOMMAND\fP := { all | wifi | wwan | wimax }
.SS \fICOMMAND\fP := { all | wifi | wwan }
.sp
.RS
.TP
@@ -254,13 +254,6 @@ Show or set status of WWAN (mobile broadband) in NetworkManager. If no arguments
are supplied, mobile broadband status is printed; \fIon\fP enables mobile broadband,
\fIoff\fP disables it.
.TP
.B wimax [ on | off ]
.br
Show or set status of WiMAX in NetworkManager. If no arguments are supplied,
WiMAX status is printed; \fIon\fP enables WiMAX; \fIoff\fP disables WiMAX. Note:
WiMAX support is a compile\(hytime decision, so it may be unavailable on some
installations.
.TP
.B all [ on | off ]
.br
Show or set all previously mentioned radio switches at the same time.
@@ -355,10 +348,10 @@ When no command is given to the \fIconnection\fP object, the default action
is 'nmcli connection show'.
.RE
.TP
.B up [ id | uuid | path ] <ID> [ifname <ifname>] [ap <BSSID>] [nsp <name>] [passwd <file with passwords>]
.B up [ id | uuid | path ] <ID> [ifname <ifname>] [ap <BSSID>] [passwd <file with passwords>]
.RE
.RS
.B up ifname <ifname> [ap <BSSID>] [nsp <name>] [passwd <file with passwords>]
.B up ifname <ifname> [ap <BSSID>] [passwd <file with passwords>]
.RS
.br
Activate a connection. The connection is identified by its name, UUID or D-Bus
@@ -381,8 +374,6 @@ Available options are:
\(en interface that will be used for activation
.IP \fIap\fP 13
\(en BSSID of the AP which the command should connect to (for Wi\(hyFi connections)
.IP \fInsp\fP 13
\(en NSP (Network Service Provider) which the command should connect to (for WiMAX connections)
.IP \fIpasswd-file\fP 13
\(en some networks may require credentials during activation. You can give these
credentials using this option.
@@ -739,7 +730,7 @@ of its latest state.
.B device - show and manage network interfaces
.br
.TP
.SS \fICOMMAND\fP := { status | show | connect | disconnect | delete | wifi | wimax }
.SS \fICOMMAND\fP := { status | show | connect | disconnect | delete | wifi }
.sp
.RS
.TP
@@ -820,13 +811,6 @@ Request that \fINetworkManager\fP immediately re-scan for available access point
NetworkManager scans Wi\(hyFi networks periodically, but in some cases it can be
useful to start scanning manually (e.g. after resuming the computer).
This command does not show the APs, use 'nmcli device wifi list' for that.
.TP
.B wimax [list [ifname <ifname>] [nsp <name>]]
.br
List available WiMAX NSP. The \fIifname\fP and \fInsp\fP options
can be used to list networks for a particular interface or with a specific
NSP, respectively.
.RE
.TP
.B agent \- run nmcli as a NetworkManager secret agent, or polkit agent

View File

@@ -148,7 +148,6 @@ src/devices/team/nm-device-team.c
src/devices/wifi/nm-device-olpc-mesh.c
src/devices/wifi/nm-device-wifi.c
src/devices/wifi/nm-wifi-ap-utils.c
src/devices/wimax/nm-device-wimax.c
src/devices/wwan/nm-modem-broadband.c
src/nm-config.c
src/nm-iface-helper.c

View File

@@ -17,10 +17,6 @@ if WITH_WIFI
SUBDIRS += devices/wifi
endif
if WITH_WIMAX
SUBDIRS += devices/wimax
endif
if WITH_TEAMDCTL
SUBDIRS += devices/team
endif
@@ -360,11 +356,6 @@ GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include <nm-core-enum-t
GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
nm_enum_types_sources = $(nm_sources)
if WITH_WIMAX
nm_enum_types_sources += devices/wimax/nm-device-wimax.h
AM_CPPFLAGS += -I$(top_srcdir)/src/devices/wimax
endif
BUILT_SOURCES = $(GLIB_GENERATED)

View File

@@ -157,7 +157,7 @@ typedef struct {
/* Checks whether the connection is compatible with the device using
* only the devices type and characteristics. Does not use any live
* network information like WiFi/WiMAX scan lists etc.
* network information like WiFi scan lists etc.
*/
gboolean (* check_connection_compatible) (NMDevice *self, NMConnection *connection);

View File

@@ -1,59 +0,0 @@
AM_CPPFLAGS = \
-I${top_srcdir}/src \
-I${top_builddir}/src \
-I${top_srcdir}/src/devices \
-I${top_srcdir}/src/platform \
-I${top_srcdir}/include \
-I${top_builddir}/libnm-core \
-I${top_srcdir}/libnm-core \
-DG_LOG_DOMAIN=\""NetworkManager-wimax"\" \
-DNETWORKMANAGER_COMPILATION \
-DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE \
$(DBUS_CFLAGS) \
$(IWMX_SDK_CFLAGS)
pkglib_LTLIBRARIES = libnm-device-plugin-wimax.la
SYMBOL_VIS_FILE=$(srcdir)/exports.ver
libnm_device_plugin_wimax_la_SOURCES = \
nm-wimax-factory.c \
nm-device-wimax.c \
nm-device-wimax.h \
nm-wimax-nsp.c \
nm-wimax-nsp.h \
nm-wimax-types.h \
nm-wimax-util.c \
nm-wimax-util.h \
iwmxsdk.c \
iwmxsdk.h
libnm_device_plugin_wimax_la_LDFLAGS = \
-module -avoid-version \
-Wl,--version-script=$(SYMBOL_VIS_FILE)
libnm_device_plugin_wimax_la_LIBADD = \
$(DBUS_LIBS) \
$(IWMX_SDK_LIBS) \
$(GUDEV_LIBS)
nm-wimax-nsp-glue.h: $(top_srcdir)/introspection/nm-wimax-nsp.xml
dbus-binding-tool --prefix=nm_wimax_nsp --mode=glib-server --output=$@ $<
nm-device-wimax-glue.h: $(top_srcdir)/introspection/nm-device-wimax.xml
dbus-binding-tool --prefix=nm_device_wimax --mode=glib-server --output=$@ $<
BUILT_SOURCES = \
nm-wimax-nsp-glue.h \
nm-device-wimax-glue.h
CLEANFILES = $(BUILT_SOURCES)
EXTRA_DIST = $(SYMBOL_VIS_FILE)
if ENABLE_TESTS
check-local:
$(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm-device-plugin-wimax.so $(SYMBOL_VIS_FILE)
endif

View File

@@ -1,6 +0,0 @@
{
global:
nm_device_factory_create;
local:
*;
};

File diff suppressed because it is too large Load Diff

View File

@@ -1,112 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/*
*
* Copyright (C) 2011 Red Hat, Inc. All rights reserved.
* Copyright (C) 2007-2010 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
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifndef __IWMXSDK_H__
#define __IWMXSDK_H__
#include "nm-wimax-util.h"
#include <wimax/WiMaxTypesEx.h>
#include <wimax/WiMaxAPIEx.h>
struct wmxsdk;
typedef void (*WimaxNewWmxsdkFunc) (struct wmxsdk *wmxsdk, void *user_data);
typedef void (*WimaxStateChangeFunc) (struct wmxsdk *wmxsdk,
WIMAX_API_DEVICE_STATUS new_status,
WIMAX_API_DEVICE_STATUS old_status,
WIMAX_API_STATUS_REASON reason,
WIMAX_API_CONNECTION_PROGRESS_INFO info,
void *user_data);
typedef void (*WimaxMediaStatusFunc) (struct wmxsdk *wmxsdk,
WIMAX_API_MEDIA_STATUS media_status,
void *user_data);
typedef void (*WimaxConnectResultFunc) (struct wmxsdk *wmxsdk,
WIMAX_API_NETWORK_CONNECTION_RESP resp,
void *user_data);
typedef void (*WimaxScanResultFunc) (struct wmxsdk *wmxsdk,
WIMAX_API_NSP_INFO_EX *nsps,
guint num_nsps,
void *user_data);
typedef void (*WimaxRemovedFunc) (struct wmxsdk *wmxsdk, void *user_data);
struct wmxsdk {
gint refcount;
WIMAX_API_DEVICE_ID device_id;
WimaxStateChangeFunc state_change_cb;
WimaxMediaStatusFunc media_status_cb;
WimaxConnectResultFunc connect_result_cb;
WimaxScanResultFunc scan_result_cb;
WimaxRemovedFunc removed_cb;
void *callback_data;
GMutex network_mutex;
WIMAX_API_DEVICE_STATUS status;
WIMAX_API_MEDIA_STATUS media_status;
GMutex status_mutex;
GMutex connect_mutex;
char name[100];
char ifname[16];
};
struct wmxsdk *iwmx_sdk_get_wmxsdk_for_iface(const char *iface);
struct wmxsdk *wmxsdk_ref(struct wmxsdk *wmxsdk);
void wmxsdk_unref(struct wmxsdk *wmxsdk);
/* Register/unregister callbacks when a new wmxsdk is set up */
void iwmx_sdk_new_callback_register(WimaxNewWmxsdkFunc callback, void *user_data);
void iwmx_sdk_new_callback_unregister(WimaxNewWmxsdkFunc callback, void *user_data);
void iwmx_sdk_set_callbacks(struct wmxsdk *wmxsdk,
WimaxStateChangeFunc state_change_cb,
WimaxMediaStatusFunc media_status_func,
WimaxConnectResultFunc connect_result_cb,
WimaxScanResultFunc scan_result_cb,
WimaxRemovedFunc removed_cb,
void *user_data);
WIMAX_API_DEVICE_STATUS iwmxsdk_status_get(struct wmxsdk *wmxsdk);
int iwmx_sdk_connect(struct wmxsdk *wmxsdk, const char *nsp_name);
int iwmx_sdk_disconnect(struct wmxsdk *wmxsdk);
int iwmx_sdk_set_fast_reconnect_enabled(struct wmxsdk *wmxsdk, int enabled);
WIMAX_API_CONNECTED_NSP_INFO_EX *iwmx_sdk_get_connected_network(struct wmxsdk *wmxsdk);
WIMAX_API_LINK_STATUS_INFO_EX *iwmx_sdk_get_link_status_info(struct wmxsdk *wmxsdk);
const char *iwmx_sdk_dev_status_to_str(WIMAX_API_DEVICE_STATUS status);
const char *iwmx_sdk_reason_to_str(WIMAX_API_STATUS_REASON reason);
const char *iwmx_sdk_media_status_to_str(WIMAX_API_MEDIA_STATUS status);
const char *iwmx_sdk_con_progress_to_str(WIMAX_API_CONNECTION_PROGRESS_INFO progress);
int iwmx_sdk_rf_state_set(struct wmxsdk *wmxsdk, WIMAX_API_RF_STATE rf_state);
int iwmx_sdk_get_networks(struct wmxsdk *wmxsdk);
int iwmx_sdk_api_init(void);
void iwmx_sdk_api_exit(void);
#endif /* __IWMXSDK_H__ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,64 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2010 - 2011 Red Hat, Inc.
* Copyright (C) 2009 Novell, Inc.
*/
#ifndef __NETWORKMANAGER_DEVICE_WIMAX_H__
#define __NETWORKMANAGER_DEVICE_WIMAX_H__
#include "nm-device.h"
#include "nm-wimax-nsp.h"
G_BEGIN_DECLS
#define NM_TYPE_DEVICE_WIMAX (nm_device_wimax_get_type ())
#define NM_DEVICE_WIMAX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_WIMAX, NMDeviceWimax))
#define NM_DEVICE_WIMAX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_WIMAX, NMDeviceWimaxClass))
#define NM_IS_DEVICE_WIMAX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_WIMAX))
#define NM_IS_DEVICE_WIMAX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_WIMAX))
#define NM_DEVICE_WIMAX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_WIMAX, NMDeviceWimaxClass))
#define NM_DEVICE_WIMAX_NSPS "nsps"
#define NM_DEVICE_WIMAX_ACTIVE_NSP "active-nsp"
#define NM_DEVICE_WIMAX_CENTER_FREQUENCY "center-frequency"
#define NM_DEVICE_WIMAX_RSSI "rssi"
#define NM_DEVICE_WIMAX_CINR "cinr"
#define NM_DEVICE_WIMAX_TX_POWER "tx-power"
#define NM_DEVICE_WIMAX_BSID "bsid"
typedef struct {
NMDevice parent;
} NMDeviceWimax;
typedef struct {
NMDeviceClass parent;
/* Signals */
void (*nsp_added) (NMDeviceWimax *wimax, NMWimaxNsp *nsp);
void (*nsp_removed) (NMDeviceWimax *wimax, NMWimaxNsp *nsp);
void (*properties_changed) (NMDeviceWimax *wimax, GHashTable *properties);
} NMDeviceWimaxClass;
GType nm_device_wimax_get_type (void);
NMDevice *nm_device_wimax_new (NMPlatformLink *platform_device);
G_END_DECLS
#endif /* NM_DEVICE_WIMAX_H */

View File

@@ -1,91 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2011 - 2014 Red Hat, Inc.
*/
#include "config.h"
#include <gmodule.h>
#include "nm-device-factory.h"
#include "nm-device-wimax.h"
#include "nm-platform.h"
#define NM_TYPE_WIMAX_FACTORY (nm_wimax_factory_get_type ())
#define NM_WIMAX_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_WIMAX_FACTORY, NMWimaxFactory))
typedef struct {
GObject parent;
} NMWimaxFactory;
typedef struct {
GObjectClass parent;
} NMWimaxFactoryClass;
static GType nm_wimax_factory_get_type (void);
static void device_factory_interface_init (NMDeviceFactory *factory_iface);
G_DEFINE_TYPE_EXTENDED (NMWimaxFactory, nm_wimax_factory, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init))
/**************************************************************************/
G_MODULE_EXPORT NMDeviceFactory *
nm_device_factory_create (GError **error)
{
return (NMDeviceFactory *) g_object_new (NM_TYPE_WIMAX_FACTORY, NULL);
}
/**************************************************************************/
static NMDevice *
new_link (NMDeviceFactory *factory, NMPlatformLink *plink, GError **error)
{
/* FIXME: check udev 'DEVTYPE' instead; but since we only support Intel
* WiMAX devices for now this is appropriate.
*/
if (g_strcmp0 (plink->driver, "i2400m_usb") != 0)
return NULL; /* unsupported */
return (NMDevice *) nm_device_wimax_new (plink);
}
static NMDeviceType
get_device_type (NMDeviceFactory *factory)
{
return NM_DEVICE_TYPE_WIMAX;
}
static void
device_factory_interface_init (NMDeviceFactory *factory_iface)
{
factory_iface->new_link = new_link;
factory_iface->get_device_type = get_device_type;
}
static void
nm_wimax_factory_init (NMWimaxFactory *factory)
{
}
static void
nm_wimax_factory_class_init (NMWimaxFactoryClass *wf_class)
{
}

View File

@@ -1,241 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2010 - 2012 Red Hat, Inc.
* Copyright (C) 2009 Novell, Inc.
*/
#include "config.h"
#include "nm-wimax-nsp.h"
#include "nm-dbus-interface.h"
#include "nm-dbus-manager.h"
#include "nm-setting-wimax.h"
#include "nm-wimax-nsp-glue.h"
#include "nm-utils.h"
G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp, G_TYPE_OBJECT)
enum {
PROP_0,
PROP_NAME,
PROP_SIGNAL_QUALITY,
PROP_NETWORK_TYPE,
LAST_PROP
};
#define GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_WIMAX_NSP, NMWimaxNspPrivate))
typedef struct {
char *dbus_path;
char *name;
guint32 signal_quality;
NMWimaxNspNetworkType network_type;
} NMWimaxNspPrivate;
NMWimaxNsp *
nm_wimax_nsp_new (const char *name)
{
g_return_val_if_fail (name != NULL, NULL);
return NM_WIMAX_NSP (g_object_new (NM_TYPE_WIMAX_NSP,
NM_WIMAX_NSP_NAME, name,
NULL));
}
const char *
nm_wimax_nsp_get_name (NMWimaxNsp *self)
{
g_return_val_if_fail (NM_IS_WIMAX_NSP (self), NULL);
return GET_PRIVATE (self)->name;
}
guint32
nm_wimax_nsp_get_signal_quality (NMWimaxNsp *self)
{
g_return_val_if_fail (NM_IS_WIMAX_NSP (self), 0);
return GET_PRIVATE (self)->signal_quality;
}
NMWimaxNspNetworkType
nm_wimax_nsp_get_network_type (NMWimaxNsp *self)
{
g_return_val_if_fail (NM_IS_WIMAX_NSP (self), 0);
return GET_PRIVATE (self)->network_type;
}
void
nm_wimax_nsp_export_to_dbus (NMWimaxNsp *self)
{
NMWimaxNspPrivate *priv;
static guint32 counter = 0;
g_return_if_fail (NM_IS_WIMAX_NSP (self));
priv = GET_PRIVATE (self);
g_return_if_fail (priv->dbus_path == NULL);
priv->dbus_path = g_strdup_printf (NM_DBUS_PATH_WIMAX_NSP "/%d", counter++);
nm_dbus_manager_register_object (nm_dbus_manager_get (), priv->dbus_path, self);
}
const char *
nm_wimax_nsp_get_dbus_path (NMWimaxNsp *self)
{
g_return_val_if_fail (NM_IS_WIMAX_NSP (self), NULL);
return GET_PRIVATE (self)->dbus_path;
}
gboolean
nm_wimax_nsp_check_compatible (NMWimaxNsp *self,
NMConnection *connection)
{
NMWimaxNspPrivate *priv;
NMSettingWimax *s_wimax;
g_return_val_if_fail (NM_IS_WIMAX_NSP (self), FALSE);
g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
priv = GET_PRIVATE (self);
s_wimax = nm_connection_get_setting_wimax (connection);
if (!s_wimax)
return FALSE;
return g_strcmp0 (nm_wimax_nsp_get_name (self), nm_setting_wimax_get_network_name (s_wimax)) == 0;
}
static void
nm_wimax_nsp_init (NMWimaxNsp *self)
{
}
static void
set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
NMWimaxNspPrivate *priv = GET_PRIVATE (object);
guint32 quality;
guint network_type;
switch (prop_id) {
case PROP_NAME:
/* Construct only */
priv->name = g_value_dup_string (value);
break;
case PROP_SIGNAL_QUALITY:
quality = g_value_get_uint (value);
if (quality != priv->signal_quality) {
priv->signal_quality = CLAMP (quality, 0, 100);
g_object_notify (object, NM_WIMAX_NSP_SIGNAL_QUALITY);
}
break;
case PROP_NETWORK_TYPE:
network_type = g_value_get_uint (value);
if (network_type != priv->network_type) {
priv->network_type = network_type;
g_object_notify (object, NM_WIMAX_NSP_NETWORK_TYPE);
}
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
NMWimaxNsp *self = NM_WIMAX_NSP (object);
switch (prop_id) {
case PROP_NAME:
g_value_set_string (value, nm_wimax_nsp_get_name (self));
break;
case PROP_SIGNAL_QUALITY:
g_value_set_uint (value, nm_wimax_nsp_get_signal_quality (self));
break;
case PROP_NETWORK_TYPE:
g_value_set_uint (value, nm_wimax_nsp_get_network_type (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
finalize (GObject *object)
{
NMWimaxNspPrivate *priv = GET_PRIVATE (object);
g_free (priv->name);
g_free (priv->dbus_path);
G_OBJECT_CLASS (nm_wimax_nsp_parent_class)->finalize (object);
}
static void
nm_wimax_nsp_class_init (NMWimaxNspClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
g_type_class_add_private (object_class, sizeof (NMWimaxNspPrivate));
/* Virtual methods */
object_class->set_property = set_property;
object_class->get_property = get_property;
object_class->finalize = finalize;
g_object_class_install_property
(object_class, PROP_NAME,
g_param_spec_string (NM_WIMAX_NSP_NAME, "", "",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
g_object_class_install_property
(object_class, PROP_SIGNAL_QUALITY,
g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "",
0,
100,
0,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
g_object_class_install_property
(object_class, PROP_NETWORK_TYPE,
g_param_spec_uint (NM_WIMAX_NSP_NETWORK_TYPE, "", "",
NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN,
NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER,
NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
nm_dbus_manager_register_exported_type (nm_dbus_manager_get (),
G_TYPE_FROM_CLASS (klass),
&dbus_glib_nm_wimax_nsp_object_info);
}

View File

@@ -1,63 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2009 Novell, Inc.
*/
#ifndef __NETWORKMANAGER_WIMAX_NSP_H__
#define __NETWORKMANAGER_WIMAX_NSP_H__
#include <glib-object.h>
#include "nm-wimax-types.h"
#include "nm-connection.h"
#define NM_TYPE_WIMAX_NSP (nm_wimax_nsp_get_type ())
#define NM_WIMAX_NSP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WIMAX_NSP, NMWimaxNsp))
#define NM_WIMAX_NSP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_WIMAX_NSP, NMWimaxNspClass))
#define NM_IS_WIMAX_NSP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_WIMAX_NSP))
#define NM_IS_WIMAX_NSP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_WIMAX_NSP))
#define NM_WIMAX_NSP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_WIMAX_NSP, NMWimaxNspClass))
#define NM_WIMAX_NSP_NAME "name"
#define NM_WIMAX_NSP_SIGNAL_QUALITY "signal-quality"
#define NM_WIMAX_NSP_NETWORK_TYPE "network-type"
typedef struct {
GObject parent;
} NMWimaxNsp;
typedef struct {
GObjectClass parent;
/* Signals */
void (*properties_changed) (NMWimaxNsp *nsp, GHashTable *properties);
} NMWimaxNspClass;
GType nm_wimax_nsp_get_type (void);
NMWimaxNsp *nm_wimax_nsp_new (const char *name);
const char *nm_wimax_nsp_get_name (NMWimaxNsp *self);
guint32 nm_wimax_nsp_get_signal_quality (NMWimaxNsp *self);
NMWimaxNspNetworkType nm_wimax_nsp_get_network_type (NMWimaxNsp *self);
void nm_wimax_nsp_export_to_dbus (NMWimaxNsp *self);
const char *nm_wimax_nsp_get_dbus_path (NMWimaxNsp *self);
gboolean nm_wimax_nsp_check_compatible (NMWimaxNsp *self,
NMConnection *connection);
#endif /* NM_WIMAX_NSP_H */

View File

@@ -1,31 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2009 Novell, Inc.
*/
#ifndef __NETWORKMANAGER_WIMAX_TYPES_H__
#define __NETWORKMANAGER_WIMAX_TYPES_H__
typedef enum {
NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN,
NM_WIMAX_NSP_NETWORK_TYPE_HOME,
NM_WIMAX_NSP_NETWORK_TYPE_PARTNER,
NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER
} NMWimaxNspNetworkType;
#endif /* NM_WIMAX_TYPES_H */

View File

@@ -1,83 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2009 Novell, Inc.
*/
#include "config.h"
#include "nm-wimax-util.h"
#include "nm-utils.h"
#include "iwmxsdk.h"
#include "nm-logging.h"
static guint sdk_refcount = 0;
void
nm_wimax_util_sdk_ref (void)
{
int ret = 0;
if (sdk_refcount == 0) {
ret = iwmx_sdk_api_init ();
if (ret != 0) {
nm_log_warn (LOGD_WIMAX, "Failed to initialize WiMAX: %d", ret);
return;
}
}
sdk_refcount++;
}
gboolean
nm_wimax_util_sdk_is_initialized (void)
{
return sdk_refcount > 0;
}
void
nm_wimax_util_sdk_unref (void)
{
g_return_if_fail (sdk_refcount > 0);
sdk_refcount--;
if (sdk_refcount == 0)
iwmx_sdk_api_exit ();
}
NMWimaxNspNetworkType
nm_wimax_util_convert_network_type (WIMAX_API_NETWORK_TYPE wimax_network_type)
{
NMWimaxNspNetworkType type;
switch (wimax_network_type) {
case WIMAX_API_HOME:
type = NM_WIMAX_NSP_NETWORK_TYPE_HOME;
break;
case WIMAX_API_PARTNER:
type = NM_WIMAX_NSP_NETWORK_TYPE_PARTNER;
break;
case WIMAX_API_ROAMING_PARTNER:
type = NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER;
break;
default:
type = NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN;
break;
}
return type;
}

View File

@@ -1,43 +0,0 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2009 Novell, Inc.
*/
#ifndef __NETWORKMANAGER_WIMAX_UTIL_H__
#define __NETWORKMANAGER_WIMAX_UTIL_H__
#include <glib.h>
#include "nm-utils-internal.h"
NM_PRAGMA_WARNING_DISABLE("-Wstrict-prototypes")
#include <WiMaxType.h>
NM_PRAGMA_WARNING_REENABLE
#include <WiMaxError.h>
#include "nm-wimax-types.h"
void nm_wimax_util_sdk_ref (void);
gboolean nm_wimax_util_sdk_is_initialized (void);
void nm_wimax_util_sdk_unref (void);
NMWimaxNspNetworkType nm_wimax_util_convert_network_type (WIMAX_API_NETWORK_TYPE wimax_network_type);
#endif /* NM_WIMAX_UTIL_H */

View File

@@ -89,7 +89,6 @@ static const LogDesc domain_descs[] = {
{ LOGD_CORE, "CORE" },
{ LOGD_DEVICE, "DEVICE" },
{ LOGD_OLPC, "OLPC" },
{ LOGD_WIMAX, "WIMAX" },
{ LOGD_INFINIBAND,"INFINIBAND" },
{ LOGD_FIREWALL, "FIREWALL" },
{ LOGD_ADSL, "ADSL" },
@@ -206,6 +205,8 @@ nm_logging_setup (const char *level,
/* Check for compatibility domains */
else if (!g_ascii_strcasecmp (*iter, "HW"))
bits = LOGD_PLATFORM;
else if (!g_ascii_strcasecmp (*iter, "WIMAX"))
continue;
else {
for (diter = &domain_descs[0]; diter->name; diter++) {

View File

@@ -57,18 +57,17 @@ typedef enum { /*< skip >*/
LOGD_CORE = (1LL << 20), /* Core daemon and policy stuff */
LOGD_DEVICE = (1LL << 21), /* Device state and activation */
LOGD_OLPC = (1LL << 22),
LOGD_WIMAX = (1LL << 23),
LOGD_INFINIBAND = (1LL << 24),
LOGD_FIREWALL = (1LL << 25),
LOGD_ADSL = (1LL << 26),
LOGD_BOND = (1LL << 27),
LOGD_VLAN = (1LL << 28),
LOGD_BRIDGE = (1LL << 29),
LOGD_DBUS_PROPS = (1LL << 30),
LOGD_TEAM = (1LL << 31),
LOGD_CONCHECK = (1LL << 32),
LOGD_DCB = (1LL << 33), /* Data Center Bridging */
LOGD_DISPATCH = (1LL << 34),
LOGD_INFINIBAND = (1LL << 23),
LOGD_FIREWALL = (1LL << 24),
LOGD_ADSL = (1LL << 25),
LOGD_BOND = (1LL << 26),
LOGD_VLAN = (1LL << 27),
LOGD_BRIDGE = (1LL << 28),
LOGD_DBUS_PROPS = (1LL << 29),
LOGD_TEAM = (1LL << 30),
LOGD_CONCHECK = (1LL << 31),
LOGD_DCB = (1LL << 32), /* Data Center Bridging */
LOGD_DISPATCH = (1LL << 33),
__LOGD_MAX,
LOGD_ALL = ((__LOGD_MAX - 1LL) << 1) - 1LL,

View File

@@ -2199,7 +2199,6 @@ platform_link_added (NMManager *self,
case NM_LINK_TYPE_OLPC_MESH:
case NM_LINK_TYPE_TEAM:
case NM_LINK_TYPE_WIFI:
case NM_LINK_TYPE_WIMAX:
nm_log_info (LOGD_HW, "(%s): '%s' plugin not available; creating generic device",
plink->name, plink->type_name);
/* fall through */