osmo_gsup_messge.[ch] documentation update (doxygen)
diff --git a/openbsc/include/openbsc/osmo_gsup_messages.h b/openbsc/include/openbsc/osmo_gsup_messages.h
index 4ccc029..8156b73 100644
--- a/openbsc/include/openbsc/osmo_gsup_messages.h
+++ b/openbsc/include/openbsc/osmo_gsup_messages.h
@@ -1,11 +1,9 @@
 /* Osmocom Subscriber Update Protocol message encoder/decoder */
 
-/* (C) 2014 by Sysmocom s.f.m.c. GmbH
+/* (C) 2014 by Sysmocom s.f.m.c. GmbH, Author: Jacob Erlbeck
  * (C) 2016 by Harald Welte <laforge@gnumonks.org>
  * All Rights Reserved
  *
- * Author: Jacob Erlbeck
- *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation; either version 3 of the License, or
@@ -28,12 +26,16 @@
 #include <osmocom/gsm/protocol/gsm_04_08_gprs.h>
 #include <osmocom/crypt/auth.h>
 
+/*! Maximum nubmer of PDP inside \ref osmo_gsup_message */
 #define OSMO_GSUP_MAX_NUM_PDP_INFO		10 /* GSM 09.02 limits this to 50 */
+/*! Maximum number of auth info inside \ref osmo_gsup_message */
 #define OSMO_GSUP_MAX_NUM_AUTH_INFO		5
+/*! Maximum number of octets encoding MSISDN in BCD format */
 #define OSMO_GSUP_MAX_MSISDN_LEN		9
 
 #define OSMO_GSUP_PDP_TYPE_SIZE			2
 
+/*! Information Element Identifiers for GSUP IEs */
 enum osmo_gsup_iei {
 	OSMO_GSUP_IMSI_IE			= 0x01,
 	OSMO_GSUP_CAUSE_IE			= 0x02,
@@ -59,6 +61,7 @@
 	OSMO_GSUP_RES_IE			= 0x27,
 };
 
+/*! GSUP message type */
 enum osmo_gsup_message_type {
 	OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST	= 0b00000100,
 	OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR	= 0b00000101,
@@ -94,16 +97,25 @@
 	OSMO_GSUP_CANCEL_TYPE_WITHDRAW		= 2, /* on wire: 1 */
 };
 
+/*! parsed/decoded PDP context information */
 struct osmo_gsup_pdp_info {
 	unsigned int			context_id;
 	int				have_info;
+	/*! Type of PDP context */
 	uint16_t			pdp_type;
+	/*! APN information, still in encoded form. Can be NULL if no
+	 * APN information included */
 	const uint8_t			*apn_enc;
+	/*! length (in octets) of apn_enc */
 	size_t				apn_enc_len;
+	/*! QoS information, still in encoded form. Can be NULL if no
+	 * QoS information included */
 	const uint8_t			*qos_enc;
+	/*! length (in octets) of qos_enc */
 	size_t				qos_enc_len;
 };
 
+/*! parsed/decoded GSUP protocol message */
 struct osmo_gsup_message {
 	enum osmo_gsup_message_type	message_type;
 	char				imsi[GSM23003_IMSI_MAX_DIGITS+2];
diff --git a/openbsc/src/gprs/osmo_gsup_messages.c b/openbsc/src/gprs/osmo_gsup_messages.c
index e820b5a..430cba7 100644
--- a/openbsc/src/gprs/osmo_gsup_messages.c
+++ b/openbsc/src/gprs/osmo_gsup_messages.c
@@ -174,6 +174,12 @@
 	return -1;
 }
 
+/*! Decode (parse) a GSUP message
+ *  \param[in] const_data input data to be parsed
+ *  \param[in] data_len length of input (\a const_data)
+ *  \param[out] gsup_msg callee-allocated output data structure
+ *  \returns 0 on success; negative otherwise
+ */
 int osmo_gsup_decode(const uint8_t *const_data, size_t data_len,
 		     struct osmo_gsup_message *gsup_msg)
 {
@@ -392,6 +398,10 @@
 	*len_field = msgb_length(msg) - old_len;
 }
 
+/*! Encode a GSUP message
+ *  \param[out] msg message buffer to which encoded message is written
+ *  \param[in] gsup_msg \ref osmo_gsup_message data to be encoded
+ */
 void osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
 {
 	uint8_t u8;