summary refs log tree commit diff
path: root/src/nm-netns.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
committerMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
commitaafc1dbe4712c86189bbc1d4d54ad8cb4c69be7e (patch)
treea2a9bb4d007339a0b1304540388230ccedac32bd /src/nm-netns.h
parente7b44ef4c80907346ec7492a09c45277459924fc (diff)
New upstream version 1.27.90 upstream/1.27.90
Diffstat (limited to 'src/nm-netns.h')
-rw-r--r--src/nm-netns.h44
1 files changed, 29 insertions, 15 deletions
diff --git a/src/nm-netns.h b/src/nm-netns.h
index c65dd907..bb0c955e 100644
--- a/src/nm-netns.h
+++ b/src/nm-netns.h
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0+
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2017 Red Hat, Inc.
  */
@@ -6,29 +6,43 @@
 #ifndef __NM_NETNS_H__
 #define __NM_NETNS_H__
 
-#define NM_TYPE_NETNS            (nm_netns_get_type ())
-#define NM_NETNS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_NETNS, NMNetns))
-#define NM_NETNS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_NETNS, NMNetnsClass))
-#define NM_IS_NETNS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_NETNS))
-#define NM_IS_NETNS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_NETNS))
-#define NM_NETNS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_NETNS, NMNetnsClass))
+#define NM_TYPE_NETNS            (nm_netns_get_type())
+#define NM_NETNS(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_NETNS, NMNetns))
+#define NM_NETNS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_NETNS, NMNetnsClass))
+#define NM_IS_NETNS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_NETNS))
+#define NM_IS_NETNS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_NETNS))
+#define NM_NETNS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_NETNS, NMNetnsClass))
 
 #define NM_NETNS_PLATFORM "platform"
 
 typedef struct _NMNetnsClass NMNetnsClass;
 
-GType nm_netns_get_type (void);
+GType nm_netns_get_type(void);
 
-NMNetns *nm_netns_get (void);
-NMNetns *nm_netns_new (NMPlatform *platform);
+NMNetns *nm_netns_get(void);
+NMNetns *nm_netns_new(NMPlatform *platform);
 
-NMPlatform *nm_netns_get_platform (NMNetns *self);
-NMPNetns *nm_netns_get_platform_netns (NMNetns *self);
+NMPlatform *nm_netns_get_platform(NMNetns *self);
+NMPNetns *  nm_netns_get_platform_netns(NMNetns *self);
 
-struct _NMPRulesManager *nm_netns_get_rules_manager (NMNetns *self);
+struct _NMPRulesManager *nm_netns_get_rules_manager(NMNetns *self);
 
-struct _NMDedupMultiIndex *nm_netns_get_multi_idx (NMNetns *self);
+struct _NMDedupMultiIndex *nm_netns_get_multi_idx(NMNetns *self);
 
-#define NM_NETNS_GET (nm_netns_get ())
+#define NM_NETNS_GET (nm_netns_get())
+
+NML3Cfg *nm_netns_access_l3cfg(NMNetns *netns, int ifindex);
+
+/*****************************************************************************/
+
+typedef struct {
+    in_addr_t addr;
+    int       _ref_count;
+    NMNetns * _self;
+} NMNetnsSharedIPHandle;
+
+NMNetnsSharedIPHandle *nm_netns_shared_ip_reserve(NMNetns *self);
+
+void nm_netns_shared_ip_release(NMNetnsSharedIPHandle *handle);
 
 #endif /* __NM_NETNS_H__ */