26 #ifndef VASUM_CLIENT_IMPL_HPP
27 #define VASUM_CLIENT_IMPL_HPP
37 #include <linux/if_link.h>
231 uint32_t flags) noexcept;
244 const char* netdevId,
245 std::vector<InetAddr>& addrs) noexcept;
251 const char* netdevId,
252 struct in_addr *addr) noexcept;
258 const char* netdevId,
259 struct in6_addr *addr) noexcept;
265 const char* netdevId,
266 struct in_addr *addr,
267 int prefix) noexcept;
273 const char* netdevId,
274 struct in6_addr *addr,
275 int prefix) noexcept;
281 const char* netdevId,
282 struct in_addr* addr,
283 int prefix) noexcept;
289 const char* netdevId,
290 struct in6_addr* addr,
291 int prefix) noexcept;
308 const char* hostDev) noexcept;
316 enum macvlan_mode mode) noexcept;
327 const char* netdevId,
VsmStatus vsm_remove_declaration(const char *zone, VsmString declaration) noexcept
Definition: vasum-client-impl.cpp:881
char * name
Definition: vasum-client-impl.hpp:62
VsmStatus connectSystem() noexcept
Connect client with system ipc address.
Definition: vasum-client-impl.cpp:212
VsmStatus vsm_declare_link(const char *source, const char *zone, const char *target, VsmString *id) noexcept
Definition: vasum-client-impl.cpp:849
VsmStatus vsm_netdev_up(const char *zone, const char *netdevId) noexcept
Definition: vasum-client-impl.cpp:677
VsmStatus vsm_unlock_zone(const char *id) noexcept
Definition: vasum-client-impl.cpp:461
VsmStatus vsm_netdev_del_ipv4_addr(const char *zone, const char *netdevId, struct in_addr *addr, int prefix) noexcept
Definition: vasum-client-impl.cpp:638
bool isInternalDispatcherEnabled() const
Definition: vasum-client-impl.cpp:166
Status mStatus
Definition: vasum-client-impl.hpp:385
VsmStatus vsm_unlock_queue() noexcept
Definition: vasum-client-impl.cpp:318
VsmStatus vsm_del_state_callback(VsmSubscriptionId subscriptionId) noexcept
Definition: vasum-client-impl.cpp:481
VsmStatus vsm_grant_device(const char *id, const char *device, uint32_t flags) noexcept
Definition: vasum-client-impl.cpp:488
VsmStatus vsm_get_poll_fd(int *fd) noexcept
Definition: vasum-client-impl.cpp:235
char * rootfs_path
Definition: vasum-client-impl.hpp:55
const char * vsm_get_status_message() const noexcept
Definition: vasum-client-impl.cpp:290
VsmStatus coverException(const std::function< void(void)> &worker) noexcept
Definition: vasum-client-impl.cpp:184
VsmStatus vsm_destroy_netdev(const char *zone, const char *devId) noexcept
Definition: vasum-client-impl.cpp:789
VsmStatus vsm_get_dispatcher_type(VsmDispacherType *dispacher) noexcept
Definition: vasum-client-impl.cpp:277
VsmStatus vsm_get_zone_dbuses(VsmArrayString *keys, VsmArrayString *values) noexcept
Definition: vasum-client-impl.cpp:301
Network interface information structure.
Definition: vasum-client-impl.hpp:69
Network device information structure.
Definition: vasum-client-impl.hpp:61
VsmStatus vsm_lookup_zone_by_pid(int pid, VsmString *id) noexcept
Definition: vasum-client-impl.cpp:351
VsmStatus vsm_lock_zone(const char *id) noexcept
Definition: vasum-client-impl.cpp:450
std::mutex mStatusMutex
Definition: vasum-client-impl.hpp:387
VsmNetdevType type
Definition: vasum-client-impl.hpp:63
VsmStatus vsm_destroy_zone(const char *id) noexcept
Definition: vasum-client-impl.cpp:417
VsmStatus vsm_netdev_del_ipv6_addr(const char *zone, const char *netdevId, struct in6_addr *addr, int prefix) noexcept
Definition: vasum-client-impl.cpp:657
VsmStatus vsm_clean_up_zones_root() noexcept
Definition: vasum-client-impl.cpp:893
~Client() noexcept
Definition: vasum-client-impl.cpp:157
VsmStatus connect(const std::string &address) noexcept
Connect client.
Definition: vasum-client-impl.cpp:217
VsmZoneState state
Definition: vasum-client-impl.hpp:54
VsmStatus vsm_declare_mount(const char *source, const char *zone, const char *target, const char *type, uint64_t flags, const char *data, VsmString *id) noexcept
Definition: vasum-client-impl.cpp:822
char data[368]
Definition: initctl.cpp:41
VsmStatus vsm_add_state_callback(VsmZoneDbusStateFunction zoneDbusStateCallback, void *data, VsmSubscriptionId *subscriptionId) noexcept
Definition: vasum-client-impl.cpp:471
VsmStatus vsm_list_declarations(const char *zone, VsmArrayString *declarations) noexcept
Definition: vasum-client-impl.cpp:868
Zone information structure.
Definition: vasum-client-impl.hpp:51
VsmStatus vsm_lock_queue() noexcept
Definition: vasum-client-impl.cpp:309
VsmStatus vsm_netdev_add_ipv4_addr(const char *zone, const char *netdevId, struct in_addr *addr, int prefix) noexcept
Definition: vasum-client-impl.cpp:602
std::unique_ptr< cargo::ipc::epoll::EventPoll > mEventPoll
Definition: vasum-client-impl.hpp:389
unsigned int VsmSubscriptionId
Subscription id.
Definition: vasum-client.h:205
char * id
Definition: vasum-client-impl.hpp:52
std::unique_ptr< cargo::ipc::Client > mClient
Definition: vasum-client-impl.hpp:390
std::string mMsg
Definition: vasum-client-impl.hpp:383
VsmDispacherType
Event dispacher types.
Definition: vasum-client.h:255
VsmStatus vsm_get_active_zone_id(VsmString *id) noexcept
Definition: vasum-client-impl.cpp:339
VsmStatus vsm_create_netdev_veth(const char *zone, const char *zoneDev, const char *hostDev) noexcept
Definition: vasum-client-impl.cpp:705
VsmStatus vsm_lookup_zone_by_id(const char *id, Zone *zone) noexcept
Definition: vasum-client-impl.cpp:372
vasum's client definition.
Definition: vasum-client-impl.hpp:84
VsmNetdevType
Netowrk device type.
Definition: vasum-client.h:232
This file contains the public API for Vasum Client.
VsmStatus vsm_start_zone(const char *id) noexcept
Definition: vasum-client-impl.cpp:439
VsmStatus vsm_create_zone(const char *id, const char *tname) noexcept
Definition: vasum-client-impl.cpp:404
VsmStatus vsm_netdev_get_ipv6_addr(const char *zone, const char *netdevId, struct in6_addr *addr) noexcept
Definition: vasum-client-impl.cpp:587
int prefix
Definition: vasum-client-impl.hpp:71
VsmStatus vsm_netdev_down(const char *zone, const char *netdevId) noexcept
Definition: vasum-client-impl.cpp:691
VsmStatus vsm_netdev_get_ipv4_addr(const char *zone, const char *netdevId, struct in_addr *addr) noexcept
Definition: vasum-client-impl.cpp:572
VsmStatus
Completion status of libvasum-client's functions.
Definition: vasum-client.h:193
VsmStatus mVsmStatus
Definition: vasum-client-impl.hpp:382
int type
Definition: vasum-client-impl.hpp:70
cargo::ipc::epoll::EventPoll & getEventPoll() const
Definition: vasum-client-impl.cpp:171
Client() noexcept
Definition: vasum-client-impl.cpp:153
VsmStatus vsm_netdev_add_ipv6_addr(const char *zone, const char *netdevId, struct in6_addr *addr, int prefix) noexcept
Definition: vasum-client-impl.cpp:620
std::function< void(const char *zoneId, const char *dbusAddress, void *data)> VsmZoneDbusStateFunction
Zone's D-Bus state change callback function signature.
Definition: vasum-client-impl.hpp:46
VsmString * VsmArrayString
NULL-terminated array of strings type.
Definition: vasum-client.h:187
Status()
Definition: vasum-client-impl.cpp:143
int terminal
Definition: vasum-client-impl.hpp:53
VsmStatus vsm_get_zone_ids(VsmArrayString *array) noexcept
Definition: vasum-client-impl.cpp:327
VsmStatus vsm_lookup_zone_by_terminal_id(int terminal, VsmString *id) noexcept
Definition: vasum-client-impl.cpp:385
VsmStatus vsm_set_dispatcher_type(VsmDispacherType dispacher) noexcept
Definition: vasum-client-impl.cpp:256
This class waits on registered file descriptor for events.
Definition: event-poll.hpp:47
VsmStatus vsm_get_status() const noexcept
Definition: vasum-client-impl.cpp:295
VsmStatus vsm_set_active_zone(const char *id) noexcept
Definition: vasum-client-impl.cpp:393
VsmZoneState
States of zone.
Definition: vasum-client.h:210
struct NetdevStructure * Netdev
Network device information structure.
struct ZoneStructure * Zone
Zone information structure.
VsmStatus vsm_lookup_netdev_by_name(const char *zone, const char *netdevId, Netdev *netdev) noexcept
Definition: vasum-client-impl.cpp:751
std::unique_ptr< cargo::ipc::epoll::ThreadDispatcher > mInternalDispatcher
Definition: vasum-client-impl.hpp:388
VsmStatus vsm_revoke_device(const char *id, const char *device) noexcept
Definition: vasum-client-impl.cpp:500
VsmStatus vsm_create_netdev_macvlan(const char *zone, const char *zoneDev, const char *hostDev, enum macvlan_mode mode) noexcept
Definition: vasum-client-impl.cpp:721
VsmStatus vsm_zone_get_netdevs(const char *zone, VsmArrayString *netdevIds) noexcept
Definition: vasum-client-impl.cpp:512
VsmFileType
File type.
Definition: vasum-client.h:246
char * VsmString
NULL-terminated string type.
Definition: vasum-client.h:180
Definition: vasum-client-impl.hpp:379
VsmStatus vsm_enter_eventloop(int flags, int timeout) noexcept
Definition: vasum-client-impl.cpp:246
bool isConnected() const
Definition: vasum-client-impl.cpp:161
VsmStatus vsm_declare_file(const char *zone, VsmFileType type, const char *path, int32_t flags, mode_t mode, VsmString *id) noexcept
Definition: vasum-client-impl.cpp:801
VsmStatus vsm_netdev_get_ip_addr(const char *zone, const char *netdevId, std::vector< InetAddr > &addrs) noexcept
Definition: vasum-client-impl.cpp:525
VsmStatus disconnect() noexcept
Disconnect client.
Definition: vasum-client-impl.cpp:228
VsmStatus vsm_create_netdev_phys(const char *zone, const char *devId) noexcept
Definition: vasum-client-impl.cpp:738
VsmStatus vsm_shutdown_zone(const char *id) noexcept
Definition: vasum-client-impl.cpp:428