tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum

This is a combination of TLVP_VAP() and TLVP_GET_MINLEN()

Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b
This commit is contained in:
Harald Welte 2018-06-02 13:34:06 +02:00
parent ebd362dbd2
commit 1fbe3eba75
1 changed files with 10 additions and 0 deletions

View File

@ -467,6 +467,16 @@ void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src)
#define TLVP_GET_MINLEN(_tp, tag, min_len) \
(TLVP_PRES_LEN(_tp, tag, min_len)? &(_tp)->lv[tag] : NULL)
/*! Like TLVP_VAL(), but enforcing a minimum val length.
* \param[in] _tp pointer to \ref tlv_parsed.
* \param[in] tag IE tag to return.
* \param[in] min_len Minimum value length in bytes.
* \returns struct tlv_p_entry pointer, or NULL if not present or too short.
*/
#define TLVP_VAL_MINLEN(_tp, tag, min_len) \
(TLVP_PRES_LEN(_tp, tag, min_len)? (_tp)->lv[tag].val : NULL)
/*! Align given TLV element with 16 bit value to an even address
* \param[in] tp pointer to \ref tlv_parsed
* \param[in] pos element to return