ns2: add value strings for ns2_affecting_cause_prim_str & ns2_prim_str

Change-Id: Ibf610fbd929dddc4a4e235152447caff522d4eb2
diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h
index fddc896..975ddcb 100644
--- a/include/osmocom/gprs/gprs_ns2.h
+++ b/include/osmocom/gprs/gprs_ns2.h
@@ -36,6 +36,12 @@
 	PRIM_NS_STATUS,
 };
 
+extern const struct value_string ns2_prim_strs[];
+
+/*! Obtain a human-readable string for NS primitives */
+static inline const char *gprs_ns2_prim_str(enum gprs_ns2_prim val)
+{ return get_value_string(ns2_prim_strs, val); }
+
 /*! Osmocom NS primitives according to 48.016 5.2.2.4 Service primitves */
 enum gprs_ns2_congestion_cause {
 	NS_CONG_CAUSE_BACKWARD_BEGIN,
@@ -55,6 +61,12 @@
 	NS_AFF_CAUSE_SNS_FAILURE,
 };
 
+extern const struct value_string gprs_ns2_aff_cause_prim_strs[];
+
+/*! Obtain a human-readable string for NS affective cause in primitives */
+static inline const char *gprs_ns2_aff_cause_prim_str(enum gprs_ns2_affecting_cause val)
+{ return get_value_string(gprs_ns2_aff_cause_prim_strs, val); }
+
 /*! Osmocom NS primitives according to 48.016 5.2.2.7 Service primitves */
 enum gprs_ns2_change_ip_endpoint {
 	NS_ENDPOINT_NO_CHANGE,
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index f65bea7..6401d77 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -203,6 +203,23 @@
 	.class_id = OSMO_STATS_CLASS_PEER,
 };
 
+const struct value_string gprs_ns2_aff_cause_prim_strs[] = {
+	{ NS_AFF_CAUSE_VC_FAILURE,	"NSVC failure" },
+	{ NS_AFF_CAUSE_VC_RECOVERY,	"NSVC recovery" },
+	{ NS_AFF_CAUSE_FAILURE,		"NSE failure" },
+	{ NS_AFF_CAUSE_RECOVERY,	"NSE recovery" },
+	{ NS_AFF_CAUSE_SNS_CONFIGURED,	"NSE SNS configured" },
+	{ NS_AFF_CAUSE_SNS_FAILURE,	"NSE SNS failure" },
+	{ 0, NULL }
+};
+
+const struct value_string ns2_prim_str[] = {
+	{ PRIM_NS_UNIT_DATA,	"UNIT DATA" },
+	{ PRIM_NS_CONGESTION,	"CONGESTION" },
+	{ PRIM_NS_STATUS,	"STATUS" },
+	{ 0, NULL }
+};
+
 /*! string-format a given NS-VC into a user-supplied buffer.
  *  \param[in] buf user-allocated output buffer
  *  \param[in] buf_len size of user-allocated output buffer in bytes
diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map
index c9ba012..9c8e685 100644
--- a/src/gb/libosmogb.map
+++ b/src/gb/libosmogb.map
@@ -72,6 +72,7 @@
 gprs_ns_ll_clear;
 gprs_ns_msgb_alloc;
 
+gprs_ns2_aff_cause_prim_strs;
 gprs_ns2_bind_set_mode;
 gprs_ns2_cause_str;
 gprs_ns2_create_nse;
@@ -107,6 +108,7 @@
 gprs_ns2_nse_sns_remote;
 gprs_ns2_nsvc_by_nsvci;
 gprs_ns2_nsvc_by_sockaddr;
+gprs_ns2_prim_strs;
 gprs_ns2_recv_prim;
 gprs_ns2_reset_persistent_nsvcs;
 gprs_ns2_start_alive_all_nsvcs;