157 #ifndef VASUM_CLIENT_H
158 #define VASUM_CLIENT_H
161 #include <sys/stat.h>
162 #include <netinet/ip.h>
163 #include <linux/if_link.h>
608 VsmSubscriptionId* subscriptionId);
667 const char* netdevId,
688 const char* netdevId,
689 struct in_addr *addr);
702 const char* netdevId,
703 struct in6_addr *addr);
717 const char* netdevId,
718 struct in_addr *addr,
733 const char* netdevId,
734 struct in6_addr *addr,
749 const char* netdevId,
750 struct in_addr* addr,
765 const char* netdevId,
766 struct in6_addr* addr,
779 const char* netdevId);
791 const char* netdevId);
806 const char* hostDev);
823 enum macvlan_mode mode);
846 const char* netdevId,
934 VsmArrayString* declarations);
948 VsmString declaration);
VsmStatus vsm_get_zone_ids(VsmClient client, VsmArrayString *array)
Get zones name.
Definition: vasum-client.cpp:186
Definition: vasum-client.h:247
VsmStatus vsm_lookup_zone_by_terminal_id(VsmClient client, int terminal, VsmString *id)
Get zone name with given terminal.
Definition: vasum-client.cpp:207
VsmStatus vsm_netdev_del_ipv6_addr(VsmClient client, const char *zone, const char *netdevId, struct in6_addr *addr, int prefix)
Remove ipv6 address from netdev.
Definition: vasum-client.cpp:338
VsmStatus vsm_lookup_zone_by_pid(VsmClient client, int pid, VsmString *id)
Get zone name of process with given pid.
Definition: vasum-client.cpp:196
VsmStatus vsm_netdev_add_ipv6_addr(VsmClient client, const char *zone, const char *netdevId, struct in6_addr *addr, int prefix)
Add ipv6 address for given netdevId.
Definition: vasum-client.cpp:320
VsmStatus vsm_lookup_netdev_by_name(VsmClient client, const char *zone, const char *netdevId, VsmNetdev *netdev)
Get netdev informations.
Definition: vasum-client.cpp:383
Definition: vasum-client.h:216
VsmStatus vsm_netdev_down(VsmClient client, const char *zone, const char *netdevId)
Turn down a network device in the zone.
Definition: vasum-client.cpp:354
void * VsmClient
vasum-server's opaque client pointer.
Definition: vasum-client.h:173
VsmStatus vsm_get_zone_dbuses(VsmClient client, VsmArrayString *keys, VsmArrayString *values)
Get dbus address of each zone.
Definition: vasum-client.cpp:181
VsmStatus vsm_clean_up_zones_root(VsmClient client)
Clean up zones root directory.
Definition: vasum-client.cpp:441
VsmStatus vsm_revoke_device(VsmClient client, const char *zone, const char *device)
Revoke access to device.
Definition: vasum-client.cpp:268
void vsm_zone_free(VsmZone zone)
Release VsmZone.
Definition: vasum-client.cpp:137
VsmStatus vsm_lock_zone(VsmClient client, const char *id)
Lock zone.
Definition: vasum-client.cpp:237
VsmStatus vsm_create_zone(VsmClient client, const char *id, const char *tname)
Create and add zone.
Definition: vasum-client.cpp:217
Definition: vasum-client.h:233
VsmStatus vsm_add_state_callback(VsmClient client, VsmZoneDbusStateCallback zoneDbusStateCallback, void *data, VsmSubscriptionId *subscriptionId)
Register dbus state change callback function.
Definition: vasum-client.cpp:247
VsmStatus vsm_create_netdev_phys(VsmClient client, const char *zone, const char *devId)
Create/move phys netdev in/to zone.
Definition: vasum-client.cpp:378
VsmStatus vsm_start_zone(VsmClient client, const char *id)
Start zone.
Definition: vasum-client.cpp:232
VsmStatus vsm_declare_link(VsmClient client, const char *source, const char *zone, const char *target)
Create link in zone.
Definition: vasum-client.cpp:419
VsmStatus vsm_create_netdev_veth(VsmClient client, const char *zone, const char *zoneDev, const char *hostDev)
Create veth netdev in zone.
Definition: vasum-client.cpp:361
Definition: vasum-client.h:212
void * VsmNetdev
Network device information.
Definition: vasum-client.h:241
VsmStatus vsm_unlock_zone(VsmClient client, const char *id)
Unlock zone.
Definition: vasum-client.cpp:242
Definition: vasum-client.h:234
Invalid argument.
Definition: vasum-client.h:197
VsmStatus vsm_declare_file(VsmClient client, const char *zone, VsmFileType type, const char *path, int32_t flags, mode_t mode)
Create file, directory or pipe in zone.
Definition: vasum-client.cpp:397
void * VsmAddrList
Definition: vasum-client.h:189
VsmStatus vsm_shutdown_zone(VsmClient client, const char *id)
Shutdown zone.
Definition: vasum-client.cpp:227
VsmStatus vsm_get_dispatcher_type(VsmClient client, VsmDispacherType *dispacher)
Get dispatching method.
Definition: vasum-client.cpp:71
VsmStatus vsm_set_active_zone(VsmClient client, const char *id)
Set active (foreground) zone.
Definition: vasum-client.cpp:212
VsmStatus vsm_set_dispatcher_type(VsmClient client, VsmDispacherType dispacher)
Set dispatching method.
Definition: vasum-client.cpp:66
void vsm_addrlist_free(VsmAddrList addrs)
Release VsmAddrList.
Definition: vasum-client.cpp:469
VsmStatus vsm_disconnect(VsmClient client)
Disconnect client from vasum-server.
Definition: vasum-client.cpp:92
VsmStatus vsm_get_poll_fd(VsmClient client, int *fd)
Get file descriptor associated with event dispatcher of zone client.
Definition: vasum-client.cpp:56
void vsm_array_string_free(VsmArrayString astring)
Release VsmArrayString.
Definition: vasum-client.cpp:97
VsmStatus vsm_declare_mount(VsmClient client, const char *source, const char *zone, const char *target, const char *type, uint64_t flags, const char *data)
Create mount point in zone.
Definition: vasum-client.cpp:408
VsmZoneState vsm_zone_get_state(VsmZone zone)
Get zone state (offline)
Definition: vasum-client.cpp:125
VsmStatus vsm_remove_declaration(VsmClient client, const char *zone, VsmString declaration)
Remove declaration.
Definition: vasum-client.cpp:434
VsmStatus vsm_create_netdev_macvlan(VsmClient client, const char *zone, const char *zoneDev, const char *hostDev, enum macvlan_mode mode)
Create macvlan in zone.
Definition: vasum-client.cpp:369
Definition: vasum-client.h:235
VsmStatus vsm_destroy_netdev(VsmClient client, const char *zone, const char *devId)
Remove netdev from zone.
Definition: vasum-client.cpp:392
char data[368]
Definition: initctl.cpp:41
User must handle dispatching messages.
Definition: vasum-client.h:256
void vsm_client_free(VsmClient client)
Release client resources.
Definition: vasum-client.cpp:164
Definition: vasum-client.h:211
VsmStatus vsm_netdev_get_ipv6_addr(VsmClient client, const char *zone, const char *netdevId, struct in6_addr *addr)
Get ipv6 address for given netdevId.
Definition: vasum-client.cpp:303
VsmStatus vsm_enter_eventloop(VsmClient client, int flags, int timeout)
Wait for an I/O event on a vsm client.
Definition: vasum-client.cpp:61
VsmString vsm_zone_get_id(VsmZone zone)
Get zone id (offline)
Definition: vasum-client.cpp:113
Definition: vasum-client.h:248
VsmStatus vsm_netdev_get_ip_addr(VsmClient client, const char *zone, const char *netdevId, VsmAddrList *addrs)
Get ipv4 address for given netdevId.
Definition: vasum-client.cpp:280
Definition: vasum-client.h:214
VsmNetdevType vsm_netdev_get_type(VsmNetdev netdev)
Get netdev type (offline)
Definition: vasum-client.cpp:151
VsmStatus vsm_netdev_add_ipv4_addr(VsmClient client, const char *zone, const char *netdevId, struct in_addr *addr, int prefix)
Add ipv4 address for given netdevId.
Definition: vasum-client.cpp:311
int vsm_zone_get_terminal(VsmZone zone)
Get zone terminal (offline)
Definition: vasum-client.cpp:119
unsigned int VsmSubscriptionId
Subscription id.
Definition: vasum-client.h:205
const char * vsm_get_status_message(VsmClient client)
Get status message of the last vasum-server communication.
Definition: vasum-client.cpp:171
VsmDispacherType
Event dispacher types.
Definition: vasum-client.h:255
VsmClient vsm_client_create()
Create a new vasum-server's client.
Definition: vasum-client.cpp:76
Definition: vasum-client.h:218
VsmNetdevType
Netowrk device type.
Definition: vasum-client.h:232
VsmStatus vsm_del_state_callback(VsmClient client, VsmSubscriptionId subscriptionId)
Unregister dbus state change callback function.
Definition: vasum-client.cpp:255
VsmStatus vsm_netdev_get_ipv4_addr(VsmClient client, const char *zone, const char *netdevId, struct in_addr *addr)
Get ipv4 address for given netdevId.
Definition: vasum-client.cpp:295
VsmStatus vsm_list_declarations(VsmClient client, const char *zone, VsmArrayString *declarations)
Get all declarations.
Definition: vasum-client.cpp:427
const void * vsm_addrlist_get_addr(VsmAddrList addrs, unsigned int i)
Get pointer to in_addr property for i'th entry see inet_ntop man pages.
Definition: vasum-client.cpp:459
VsmStatus vsm_lock_queue(VsmClient client)
Lock the command queue exclusively.
Definition: vasum-client.cpp:46
VsmStatus vsm_get_status(VsmClient client)
Get status code of last vasum-server communication.
Definition: vasum-client.cpp:176
VsmStatus vsm_unlock_queue(VsmClient client)
Unlock the command queue.
Definition: vasum-client.cpp:51
Input/Output error.
Definition: vasum-client.h:195
VsmStatus
Completion status of libvasum-client's functions.
Definition: vasum-client.h:193
User specified error.
Definition: vasum-client.h:194
Definition: vasum-client.h:213
void vsm_string_free(VsmString string)
Release VsmString.
Definition: vasum-client.cpp:108
VsmStatus vsm_destroy_zone(VsmClient client, const char *id, int force)
Remove zone.
Definition: vasum-client.cpp:222
VsmStatus vsm_connect(VsmClient client)
Connect client to the vasum-server.
Definition: vasum-client.cpp:82
VsmStatus vsm_zone_get_netdevs(VsmClient client, const char *zone, VsmArrayString *netdevIds)
Get array of netdev from given zone.
Definition: vasum-client.cpp:273
VsmString * VsmArrayString
NULL-terminated array of strings type.
Definition: vasum-client.h:187
VsmStatus vsm_lookup_zone_by_id(VsmClient client, const char *id, VsmZone *zone)
Get zone informations of zone with given id.
Definition: vasum-client.cpp:201
Definition: vasum-client.h:249
int vsm_addrlist_get_type(VsmAddrList addrs, unsigned int i)
Get address type for i'th entry.
Definition: vasum-client.cpp:454
VsmString vsm_zone_get_rootfs(VsmZone zone)
Get zone rootfs path (offline)
Definition: vasum-client.cpp:131
Other error.
Definition: vasum-client.h:198
VsmZoneState
States of zone.
Definition: vasum-client.h:210
VsmString vsm_netdev_get_name(VsmNetdev netdev)
Get netdev name (offline)
Definition: vasum-client.cpp:145
Definition: vasum-client.h:219
Success.
Definition: vasum-client.h:199
VsmStatus vsm_netdev_up(VsmClient client, const char *zone, const char *netdevId)
Turn up a network device in the zone.
Definition: vasum-client.cpp:347
VsmFileType
File type.
Definition: vasum-client.h:246
VsmStatus vsm_netdev_del_ipv4_addr(VsmClient client, const char *zone, const char *netdevId, struct in_addr *addr, int prefix)
Remove ipv4 address from netdev.
Definition: vasum-client.cpp:329
char * VsmString
NULL-terminated string type.
Definition: vasum-client.h:180
void vsm_netdev_free(VsmNetdev netdev)
Release VsmNetdev.
Definition: vasum-client.cpp:157
Definition: vasum-client.h:215
unsigned int vsm_addrlist_size(VsmAddrList addrs)
Retrieve array size.
Definition: vasum-client.cpp:446
Library will take care of dispatching messages.
Definition: vasum-client.h:257
VsmStatus vsm_get_active_zone_id(VsmClient client, VsmString *id)
Get active (foreground) zone name.
Definition: vasum-client.cpp:191
Definition: vasum-client.h:220
Operation failed.
Definition: vasum-client.h:196
Definition: vasum-client.h:217
void(* VsmZoneDbusStateCallback)(const char *zoneId, const char *address, void *data)
Zone's D-Bus state change callback function signature.
Definition: vasum-client.h:443
unsigned int vsm_addrlist_get_prefix(VsmAddrList addrs, unsigned int i)
Get address prefix for i'th entry.
Definition: vasum-client.cpp:464
VsmStatus vsm_connect_custom(VsmClient client, const char *address)
Connect client to the vasum-server via custom address.
Definition: vasum-client.cpp:87
VsmStatus vsm_grant_device(VsmClient client, const char *zone, const char *device, uint32_t flags)
Grant access to device.
Definition: vasum-client.cpp:260
void * VsmZone
Zone information.
Definition: vasum-client.h:227
Definition: vasum-client.h:221