diff --git a/gtp/gtp.c b/gtp/gtp.c
index fee49b5..3051aaa 100644
--- a/gtp/gtp.c
+++ b/gtp/gtp.c
@@ -3259,8 +3259,8 @@
 
 int ipv42eua(struct ul66_t *eua, struct in_addr *src)
 {
-	eua->v[0] = 0xf1;	/* IETF */
-	eua->v[1] = 0x21;	/* IPv4 */
+	eua->v[0] = PDP_EUA_ORG_IETF;
+	eua->v[1] = PDP_EUA_TYPE_v4;
 	if (src) {
 		eua->l = 6;
 		memcpy(&eua->v[2], src, 4);
@@ -3272,7 +3272,7 @@
 
 int eua2ipv4(struct in_addr *dst, struct ul66_t *eua)
 {
-	if ((eua->l != 6) || (eua->v[0] != 0xf1) || (eua->v[1] = 0x21))
+	if ((eua->l != 6) || (eua->v[0] != PDP_EUA_ORG_IETF) || (eua->v[1] != PDP_EUA_TYPE_v4))
 		return -1;	/* Not IPv4 address */
 	memcpy(dst, &eua->v[2], 4);
 	return 0;
diff --git a/gtp/pdp.c b/gtp/pdp.c
index d3e9232..b1e1ff3 100644
--- a/gtp/pdp.c
+++ b/gtp/pdp.c
@@ -367,15 +367,15 @@
 int pdp_ntoeua(struct in_addr *src, struct ul66_t *eua)
 {
 	eua->l = 6;
-	eua->v[0] = 0xf1;	/* IETF */
-	eua->v[1] = 0x21;	/* IPv4 */
+	eua->v[0] = PDP_EUA_ORG_IETF;
+	eua->v[1] = PDP_EUA_TYPE_v4;
 	memcpy(&eua->v[2], src, 4);	/* Copy a 4 byte address */
 	return 0;
 }
 
 int pdp_euaton(struct ul66_t *eua, struct in_addr *dst)
 {
-	if ((eua->l != 6) || (eua->v[0] != 0xf1) || (eua->v[1] != 0x21)) {
+	if ((eua->l != 6) || (eua->v[0] != PDP_EUA_ORG_IETF) || (eua->v[1] != PDP_EUA_TYPE_v4)) {
 		return EOF;
 	}
 	memcpy(dst, &eua->v[2], 4);	/* Copy a 4 byte address */
diff --git a/gtp/pdp.h b/gtp/pdp.h
index 106d544..f1d8ad6 100644
--- a/gtp/pdp.h
+++ b/gtp/pdp.h
@@ -23,6 +23,10 @@
 #define PDP_MAX 1024		/* Max number of PDP contexts */
 #define PDP_MAXNSAPI 16		/* Max number of NSAPI */
 
+#define PDP_EUA_ORG_IETF	0xF1
+#define PDP_EUA_TYPE_v4		0x21
+#define PDP_EUA_TYPE_v6		0x57
+
 /* 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 *
  * by 135: QOS Profile in version 1 */
diff --git a/lib/in46_addr.c b/lib/in46_addr.c
index 4b5fd64..f78a40b 100644
--- a/lib/in46_addr.c
+++ b/lib/in46_addr.c
@@ -10,6 +10,7 @@
  */
 
 #include "../lib/in46_addr.h"
+#include "../gtp/pdp.h"
 
 #include <osmocom/core/utils.h>
 
@@ -201,15 +202,15 @@
 	switch (src->len) {
 	case 4:
 		eua->l = 6;
-		eua->v[0] = 0xf1;	/* IETF */
-		eua->v[1] = 0x21;	/* IPv4 */
+		eua->v[0] = PDP_EUA_ORG_IETF;
+		eua->v[1] = PDP_EUA_TYPE_v4;
 		memcpy(&eua->v[2], &src->v4, 4);	/* Copy a 4 byte address */
 		break;
 	case 8:
 	case 16:
 		eua->l = 18;
-		eua->v[0] = 0xf1;	/* IETF */
-		eua->v[1] = 0x57;	/* IPv6 */
+		eua->v[0] = PDP_EUA_ORG_IETF;
+		eua->v[1] = PDP_EUA_TYPE_v6;
 		memcpy(&eua->v[2], &src->v6, 16);	/* Copy a 16 byte address */
 		break;
 	default:
@@ -230,14 +231,14 @@
 		return -1;
 
 	switch (eua->v[1]) {
-	case 0x21:
+	case PDP_EUA_TYPE_v4:
 		dst->len = 4;
 		if (eua->l >= 6)
 			memcpy(&dst->v4, &eua->v[2], 4);	/* Copy a 4 byte address */
 		else
 			dst->v4.s_addr = 0;
 		break;
-	case 0x57:
+	case PDP_EUA_TYPE_v6:
 		dst->len = 16;
 		if (eua->l >= 18)
 			memcpy(&dst->v6, &eua->v[2], 16);	/* Copy a 16 byte address */
