aboutsummaryrefslogtreecommitdiffstats
path: root/lib/in46_addr.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-08-02 21:48:16 +0200
committerHarald Welte <laforge@gnumonks.org>2017-08-03 02:13:16 +0200
commit00f58d2118a4298df079bbd0ca2a01226e1684b7 (patch)
treeb6fb6b5b8f0bc4756ffe50c509040c12bb08b9d8 /lib/in46_addr.h
parentb242b81671181e1098286e26e338e88b1e712944 (diff)
IPv6 support for user IP
This patch enables the use of IPv6 PDP contexts. The phone will have to request an IPv6 End-user-Address, and the GGSN will have to be configured for an IPv6 pool. The outer transport-layer IP between SGSN and GGSN must still be IPv4, it is not modified by this patch Change-Id: I22c3bf32a98e5daf99d6eaeac8c9f95cc7574774
Diffstat (limited to 'lib/in46_addr.h')
-rw-r--r--lib/in46_addr.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/in46_addr.h b/lib/in46_addr.h
index f28fd8e..a0ad6e1 100644
--- a/lib/in46_addr.h
+++ b/lib/in46_addr.h
@@ -2,6 +2,8 @@
#include <stdint.h>
#include <netinet/in.h>
+#include "../gtp/pdp.h"
+
/* a simple wrapper around an in6_addr to also contain the length of the address,
* thereby implicitly indicating the address family of the address */
struct in46_addr {
@@ -17,3 +19,6 @@ extern int in46a_to_sas(struct sockaddr_storage *out, const struct in46_addr *in
extern const char *in46a_ntop(const struct in46_addr *in, char *dst, socklen_t dst_size);
extern int in46a_equal(const struct in46_addr *a, const struct in46_addr *b);
extern int in46a_within_mask(const struct in46_addr *addr, const struct in46_addr *net, size_t prefixlen);
+
+int in46a_to_eua(const struct in46_addr *src, struct ul66_t *eua);
+int in46a_from_eua(const struct ul66_t *eua, struct in46_addr *dst);