From 949e50e02bb1af911dca820f21a11232f615e106 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 8 Aug 2017 23:27:22 +0200 Subject: IPv6: Implement IPv6 prefix assignment via ICMPv6 router advertisement The 3GPP specs are quite strange when it comes to how an IPv6 address or rather prefix is assigned to an IPv6 PDP context. The designated method for allocating the IPv6 address via the PDP EUA (End User Address) Information Element in the GTP signalling plane is *not* used to allocate the address/prefix. Instead, the EUA is used to allocate an "interface identifier" to the MS, which it the uses to derive its link-local source address to send a router solicitation. The GGSN subsequently answers witha router advertisement, advertising a single/64 prefix, whihcthe MS then uses to generate it's real IPv6 source address for subsequent communication. Change-Id: Icddf7d30e01d76a4784bcef5787b36f52f703a9f --- ggsn/icmpv6.h | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ggsn/icmpv6.h (limited to 'ggsn/icmpv6.h') diff --git a/ggsn/icmpv6.h b/ggsn/icmpv6.h new file mode 100644 index 0000000..ebff04e --- /dev/null +++ b/ggsn/icmpv6.h @@ -0,0 +1,6 @@ +#pragma once + +#include "../gtp/gtp.h" +#include "../gtp/pdp.h" + +int handle_router_mcast(struct gsn_t *gsn, struct pdp_t *pdp, const uint8_t *pack, unsigned len); -- cgit v1.2.3