summaryrefslogtreecommitdiffstats
path: root/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'config.h')
-rw-r--r--config.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/config.h b/config.h
index 50efeeb..1ba6850 100644
--- a/config.h
+++ b/config.h
@@ -21,22 +21,31 @@
#include <linux/if.h>
#include <netinet/in.h>
-#define DEFAULT_IPV4_LOCAL_SUBNET "192.0.0.4"
-#define DEFAULT_IPV4_LOCAL_PREFIXLEN "29"
+#include "ring.h"
+
+struct tun_data {
+ char device4[IFNAMSIZ];
+ int read_fd6, write_fd6, fd4;
+ struct packet_ring ring;
+};
struct clat_config {
struct in6_addr ipv6_local_subnet;
- struct in6_addr ipv6_host_id;
struct in_addr ipv4_local_subnet;
- int16_t ipv4_local_prefixlen;
struct in6_addr plat_subnet;
- char *default_pdp_interface;
- int use_dynamic_iid;
+ const char *native_ipv6_interface;
};
extern struct clat_config Global_Clatd_Config;
-int read_config(const char *file, const char *uplink_interface);
-int ipv6_prefix_equal(struct in6_addr *a1, struct in6_addr *a2);
+/* function: ipv6_prefix_equal
+ * compares the /64 prefixes of two ipv6 addresses.
+ * a1 - first address
+ * a2 - second address
+ * returns: 0 if the subnets are different, 1 if they are the same.
+ */
+static inline int ipv6_prefix_equal(struct in6_addr *a1, struct in6_addr *a2) {
+ return !memcmp(a1, a2, 8);
+}
#endif /* __CONFIG_H__ */