NetworkManager/src/nm-cloud-setup/nmcs-provider-aliyun.h
Wen Liang f3404435a9
cloud-setup: configure secondary ip in Aliyun cloud
This is a tool for automatically configuring networking in Aliyun
cloud environment.

This add a provider implementation for Aliyun that when detected fetches
the private ip addressess and the subnet prefix of IPv4 CIDR block.

Once this information is fetched from the metadata server, it instructs
NetworkManager to add private ip addressess and subnet prefix for each
interface detected.

It is inspired by SuSE's cloud-netconfig ([1], [2]) and Aliyun Instance Metadata [3].

[1] https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/
[2] https://github.com/SUSE-Enceladus/cloud-netconfig
[3] https://www.alibabacloud.com/help/doc-detail/49122.htm

It is also intended to work without configuration. The main point is
that you boot an image with NetworkManager and nm-cloud-setup enabled,
and it just works.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/885

Signed-off-by: Wen Liang <liangwen12year@gmail.com>
2021-07-19 17:41:52 +02:00

28 lines
1.2 KiB
C

/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef __NMCS_PROVIDER_ALIYUN_H__
#define __NMCS_PROVIDER_ALIYUN_H__
#include "nmcs-provider.h"
/*****************************************************************************/
typedef struct _NMCSProviderAliyun NMCSProviderAliyun;
typedef struct _NMCSProviderAliyunClass NMCSProviderAliyunClass;
#define NMCS_TYPE_PROVIDER_ALIYUN (nmcs_provider_aliyun_get_type())
#define NMCS_PROVIDER_ALIYUN(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_ALIYUN, NMCSProviderAliyun))
#define NMCS_PROVIDER_ALIYUN_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass), NMCS_TYPE_PROVIDER_ALIYUN, NMCSProviderAliyunClass))
#define NMCS_IS_PROVIDER_ALIYUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMCS_TYPE_PROVIDER_ALIYUN))
#define NMCS_IS_PROVIDER_ALIYUN_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass), NMCS_TYPE_PROVIDER_ALIYUN))
#define NMCS_PROVIDER_ALIYUN_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), NMCS_TYPE_PROVIDER_ALIYUN, NMCSProviderAliyunClass))
GType nmcs_provider_aliyun_get_type(void);
/*****************************************************************************/
#endif /* __NMCS_PROVIDER_ALIYUN_H__ */