aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen/src/xen_pif.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxen/src/xen_pif.c')
-rw-r--r--tools/libxen/src/xen_pif.c134
1 files changed, 45 insertions, 89 deletions
diff --git a/tools/libxen/src/xen_pif.c b/tools/libxen/src/xen_pif.c
index b3edd91e6d..0e9af6a382 100644
--- a/tools/libxen/src/xen_pif.c
+++ b/tools/libxen/src/xen_pif.c
@@ -25,6 +25,7 @@
#include "xen_internal.h"
#include "xen_network.h"
#include "xen_pif.h"
+#include "xen_pif_metrics.h"
XEN_FREE(xen_pif)
@@ -41,9 +42,9 @@ static const struct_member xen_pif_record_struct_members[] =
{ .key = "uuid",
.type = &abstract_type_string,
.offset = offsetof(xen_pif_record, uuid) },
- { .key = "name",
+ { .key = "device",
.type = &abstract_type_string,
- .offset = offsetof(xen_pif_record, name) },
+ .offset = offsetof(xen_pif_record, device) },
{ .key = "network",
.type = &abstract_type_ref,
.offset = offsetof(xen_pif_record, network) },
@@ -57,14 +58,11 @@ static const struct_member xen_pif_record_struct_members[] =
.type = &abstract_type_int,
.offset = offsetof(xen_pif_record, mtu) },
{ .key = "VLAN",
- .type = &abstract_type_string,
+ .type = &abstract_type_int,
.offset = offsetof(xen_pif_record, vlan) },
- { .key = "io_read_kbs",
- .type = &abstract_type_float,
- .offset = offsetof(xen_pif_record, io_read_kbs) },
- { .key = "io_write_kbs",
- .type = &abstract_type_float,
- .offset = offsetof(xen_pif_record, io_write_kbs) }
+ { .key = "metrics",
+ .type = &abstract_type_ref,
+ .offset = offsetof(xen_pif_record, metrics) }
};
const abstract_type xen_pif_record_abstract_type_ =
@@ -86,11 +84,11 @@ xen_pif_record_free(xen_pif_record *record)
}
free(record->handle);
free(record->uuid);
- free(record->name);
+ free(record->device);
xen_network_record_opt_free(record->network);
xen_host_record_opt_free(record->host);
free(record->mac);
- free(record->vlan);
+ xen_pif_metrics_record_opt_free(record->metrics);
free(record);
}
@@ -136,38 +134,7 @@ xen_pif_get_by_uuid(xen_session *session, xen_pif *result, char *uuid)
bool
-xen_pif_create(xen_session *session, xen_pif *result, xen_pif_record *record)
-{
- abstract_value param_values[] =
- {
- { .type = &xen_pif_record_abstract_type_,
- .u.struct_val = record }
- };
-
- abstract_type result_type = abstract_type_string;
-
- *result = NULL;
- XEN_CALL_("PIF.create");
- return session->ok;
-}
-
-
-bool
-xen_pif_destroy(xen_session *session, xen_pif pif)
-{
- abstract_value param_values[] =
- {
- { .type = &abstract_type_string,
- .u.string_val = pif }
- };
-
- xen_call_(session, "PIF.destroy", param_values, 1, NULL, NULL);
- return session->ok;
-}
-
-
-bool
-xen_pif_get_name(xen_session *session, char **result, xen_pif pif)
+xen_pif_get_device(xen_session *session, char **result, xen_pif pif)
{
abstract_value param_values[] =
{
@@ -178,7 +145,7 @@ xen_pif_get_name(xen_session *session, char **result, xen_pif pif)
abstract_type result_type = abstract_type_string;
*result = NULL;
- XEN_CALL_("PIF.get_name");
+ XEN_CALL_("PIF.get_device");
return session->ok;
}
@@ -251,7 +218,7 @@ xen_pif_get_mtu(xen_session *session, int64_t *result, xen_pif pif)
bool
-xen_pif_get_vlan(xen_session *session, char **result, xen_pif pif)
+xen_pif_get_vlan(xen_session *session, int64_t *result, xen_pif pif)
{
abstract_value param_values[] =
{
@@ -259,32 +226,15 @@ xen_pif_get_vlan(xen_session *session, char **result, xen_pif pif)
.u.string_val = pif }
};
- abstract_type result_type = abstract_type_string;
+ abstract_type result_type = abstract_type_int;
- *result = NULL;
XEN_CALL_("PIF.get_VLAN");
return session->ok;
}
bool
-xen_pif_get_io_read_kbs(xen_session *session, double *result, xen_pif pif)
-{
- abstract_value param_values[] =
- {
- { .type = &abstract_type_string,
- .u.string_val = pif }
- };
-
- abstract_type result_type = abstract_type_float;
-
- XEN_CALL_("PIF.get_io_read_kbs");
- return session->ok;
-}
-
-
-bool
-xen_pif_get_io_write_kbs(xen_session *session, double *result, xen_pif pif)
+xen_pif_get_metrics(xen_session *session, xen_pif_metrics *result, xen_pif pif)
{
abstract_value param_values[] =
{
@@ -292,105 +242,111 @@ xen_pif_get_io_write_kbs(xen_session *session, double *result, xen_pif pif)
.u.string_val = pif }
};
- abstract_type result_type = abstract_type_float;
+ abstract_type result_type = abstract_type_string;
- XEN_CALL_("PIF.get_io_write_kbs");
+ *result = NULL;
+ XEN_CALL_("PIF.get_metrics");
return session->ok;
}
bool
-xen_pif_set_name(xen_session *session, xen_pif pif, char *name)
+xen_pif_set_device(xen_session *session, xen_pif pif, char *device)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = pif },
{ .type = &abstract_type_string,
- .u.string_val = name }
+ .u.string_val = device }
};
- xen_call_(session, "PIF.set_name", param_values, 2, NULL, NULL);
+ xen_call_(session, "PIF.set_device", param_values, 2, NULL, NULL);
return session->ok;
}
bool
-xen_pif_set_network(xen_session *session, xen_pif pif, xen_network network)
+xen_pif_set_mac(xen_session *session, xen_pif pif, char *mac)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = pif },
{ .type = &abstract_type_string,
- .u.string_val = network }
+ .u.string_val = mac }
};
- xen_call_(session, "PIF.set_network", param_values, 2, NULL, NULL);
+ xen_call_(session, "PIF.set_MAC", param_values, 2, NULL, NULL);
return session->ok;
}
bool
-xen_pif_set_host(xen_session *session, xen_pif pif, xen_host host)
+xen_pif_set_mtu(xen_session *session, xen_pif pif, int64_t mtu)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = pif },
- { .type = &abstract_type_string,
- .u.string_val = host }
+ { .type = &abstract_type_int,
+ .u.int_val = mtu }
};
- xen_call_(session, "PIF.set_host", param_values, 2, NULL, NULL);
+ xen_call_(session, "PIF.set_MTU", param_values, 2, NULL, NULL);
return session->ok;
}
bool
-xen_pif_set_mac(xen_session *session, xen_pif pif, char *mac)
+xen_pif_set_vlan(xen_session *session, xen_pif pif, int64_t vlan)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = pif },
- { .type = &abstract_type_string,
- .u.string_val = mac }
+ { .type = &abstract_type_int,
+ .u.int_val = vlan }
};
- xen_call_(session, "PIF.set_MAC", param_values, 2, NULL, NULL);
+ xen_call_(session, "PIF.set_VLAN", param_values, 2, NULL, NULL);
return session->ok;
}
bool
-xen_pif_set_mtu(xen_session *session, xen_pif pif, int64_t mtu)
+xen_pif_create_vlan(xen_session *session, xen_pif *result, char *device, xen_network network, xen_host host, int64_t vlan)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
- .u.string_val = pif },
+ .u.string_val = device },
+ { .type = &abstract_type_string,
+ .u.string_val = network },
+ { .type = &abstract_type_string,
+ .u.string_val = host },
{ .type = &abstract_type_int,
- .u.int_val = mtu }
+ .u.int_val = vlan }
};
- xen_call_(session, "PIF.set_MTU", param_values, 2, NULL, NULL);
+ abstract_type result_type = abstract_type_string;
+
+ *result = NULL;
+ XEN_CALL_("PIF.create_VLAN");
return session->ok;
}
bool
-xen_pif_set_vlan(xen_session *session, xen_pif pif, char *vlan)
+xen_pif_destroy(xen_session *session, xen_pif self)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
- .u.string_val = pif },
- { .type = &abstract_type_string,
- .u.string_val = vlan }
+ .u.string_val = self }
};
- xen_call_(session, "PIF.set_VLAN", param_values, 2, NULL, NULL);
+ xen_call_(session, "PIF.destroy", param_values, 1, NULL, NULL);
return session->ok;
}