[osmo-bts PATCH 1/3 v10] src: Add OML support for sending failure message from manager

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Holger Hans Peter Freyther holger at freyther.de
Wed Apr 16 21:13:12 UTC 2014


On Wed, Apr 16, 2014 at 02:06:22PM +0200, Alvaro Neira Ayuso wrote:

> +/*
> + * In succesfully case, this function set again the pointers of the l2h and l3h
> + * of the OML message that we have received. In other case, we don't set the
> + * pointers of l2h and l3h
> + */
> +static int check_oml_msg(struct msgb *msg)
> +{

> +	msg->l2h = msg->data;

...


> +	if (msg->len < abis_oml_hdr_len)
> +		return -1;
> +
> +	msg->l3h = msg->data + sizeof(struct abis_om_hdr);

> +	if (omh->mdisc != ABIS_OM_MDISC_FOM)
> +		return -1;


Code and comment do not match. This is why I asked you to say that in
the error case the behavior is undefined. The other option would be to
re-set l2h/l3h to NULL to make the code match your description. In terms
of structure I had thought of a documentation like this:

/**
 * \brief Check that the data in \param msg is a proper OML message
 *
 * This function verifies that the data in \param in msg is a proper
 * OML message and can be handled by later functions. In the successful
 * case the msg->l2h will now point to the OML header and the msg->l3h
 * will point to the FOM header. The value of l2h/l3h is undefined in
 * case the verification of the \param msg is failing.
 *
 * \param msg The message to analyze. msg->len starting from msg->data
 * will be analyzed.
 * \return This function returns X on success and Y on failure.
 */




More information about the OpenBSC mailing list