Add support for IPv4v6 End User Addresses

Before this commit, when an MS requested an ipv4v6 context osmo-ggsn
returned an error stating the type was unknown, and this text was
printed in the log:
Processing create PDP context request for APN 'ims'
Cannot decode EUA from MS/SGSN: f1 8d

This patch has been tested with an MS running the 3 types of addresses:
- IPv4 and IPv6: no regressions observed, the context is activated and
packets are sent to the ggsn.
- IPv4v6: Wireshark correctly parses request and reponse, and then
ICMPv6 traffic from both sides. Finally I see the MS using the IPv4 and
IPv6 DNS addresses advertised and TCP traffic over IPv4 (because
probably my IPv6 network setup is not correct). I also checked I can
disable/enable data (pdp ctx delete and activate) several times without
any issue.

Change-Id: Ic820759167fd3bdf329cb11d4b942e903fe50af5
diff --git a/gtp/pdp.h b/gtp/pdp.h
index f1d8ad6..b581952 100644
--- a/gtp/pdp.h
+++ b/gtp/pdp.h
@@ -26,6 +26,7 @@
 #define PDP_EUA_ORG_IETF	0xF1
 #define PDP_EUA_TYPE_v4		0x21
 #define PDP_EUA_TYPE_v6		0x57
+#define PDP_EUA_TYPE_v4v6	0x8D
 
 /* GTP Information elements from 29.060 v3.9.0 7.7 Information Elements */
 /* Also covers version 0. Note that version 0 6: QOS Profile was superceded *
@@ -121,7 +122,7 @@
 	/* Parameters shared by all PDP context belonging to the same MS */
 
 	void *ipif;		/* IP network interface */
-	void *peer;		/* Pointer to peer protocol */
+	void *peer[2];		/* Pointer to peer protocol */
 	void *asap;		/* Application specific service access point */
 
 	uint64_t imsi;		/* International Mobile Subscriber Identity. */