GSUP: deprecate osmo_gsup_get_err_msg_type()

Replace osmo_gsup_get_err_msg_type() with a wrapper to
OSMO_GSUP_TO_MSGT_ERROR(). This macro assumes, that all error messages
are (request message | 0x000001). Add a big comment header for
osmo_gsup_message_type, describing this already implicitly followed rule
and therefore making it explicit.

With this change, we don't need to maintain the request -> error message
mapping in osmo_gsup_get_err_msg_type() anymore.

Related: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 (osmo-gsm-manuals)
Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f
This commit is contained in:
Oliver Smith 2019-02-01 15:21:25 +01:00 committed by osmith
parent 89991fdb7c
commit d6ff9c8315
2 changed files with 17 additions and 30 deletions

View File

@ -105,7 +105,18 @@ enum osmo_gsup_iei {
_OSMO_GSUP_IEI_END_MARKER
};
/*! GSUP message type */
/*! GSUP message type
* Make sure that new messages follow this scheme:
* .----------------------------.
* | Ending Bits | Category |
* |----------------------------|
* | 00 | Request |
* | 01 | Error |
* | 10 | Result |
* | 11 | Other |
* '----------------------------'
* Request, Error and Result messages must only differ in these last two bits.
*/
enum osmo_gsup_message_type {
OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST = 0b00000100,
OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR = 0b00000101,
@ -280,6 +291,7 @@ struct osmo_gsup_message {
int osmo_gsup_decode(const uint8_t *data, size_t data_len,
struct osmo_gsup_message *gsup_msg);
int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg);
int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in);
int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in)
OSMO_DEPRECATED("Use OSMO_GSUP_TO_MSGT_ERROR() instead");
/*! @} */

View File

@ -95,36 +95,11 @@ const struct value_string osmo_gsup_session_state_names[] = {
};
/*! return the error message type corresponding to \a type_in
* \returns matching error message type; -1 on error */
/*! return the error message type corresponding to \a type_in.
* Deprecated, use OSMO_GSUP_TO_MSGT_ERROR() instead. */
int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in)
{
switch (type_in) {
case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST:
return OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR;
case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST:
return OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR;
case OSMO_GSUP_MSGT_PURGE_MS_REQUEST:
return OSMO_GSUP_MSGT_PURGE_MS_ERROR;
case OSMO_GSUP_MSGT_INSERT_DATA_REQUEST:
return OSMO_GSUP_MSGT_INSERT_DATA_ERROR;
case OSMO_GSUP_MSGT_DELETE_DATA_REQUEST:
return OSMO_GSUP_MSGT_DELETE_DATA_ERROR;
case OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST:
return OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR;
case OSMO_GSUP_MSGT_PROC_SS_REQUEST:
return OSMO_GSUP_MSGT_PROC_SS_ERROR;
case OSMO_GSUP_MSGT_MO_FORWARD_SM_REQUEST:
return OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR;
case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST:
return OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR;
case OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST:
return OSMO_GSUP_MSGT_READY_FOR_SM_ERROR;
case OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST:
return OSMO_GSUP_MSGT_CHECK_IMEI_ERROR;
default:
return -1;
}
return OSMO_GSUP_TO_MSGT_ERROR(type_in);
}
static int decode_pdp_info(uint8_t *data, size_t data_len,