libosmogsm 1.9.2
Osmocom GSM library
|
IPA Multiplex utility routines. More...
Macros | |
#define | IPA_ALLOC_SIZE 1200 |
#define | IPA_STRING_MAX 64 |
Variables | |
static const uint8_t | ipa_pong_msg [] |
static const uint8_t | ipa_id_ack_msg [] |
static const uint8_t | ipa_id_req_msg [] |
static const char * | idtag_names [] |
IPA Multiplex utility routines.
#define IPA_ALLOC_SIZE 1200 |
#define IPA_STRING_MAX 64 |
Parse the payload part of an IPA CCM ID GET, return tlv_parsed format.
The odd payload format of those messages is structured as follows:
[out] | dec | Caller-provided/allocated output structure for parsed payload |
[in] | buf | Buffer containing the payload (excluding 1 byte msg_type) of the message |
[in] | len | Length of buf in octets |
References DLMI, ipa_ccm_idtag_name(), len, LOGL_DEBUG, LOGL_ERROR, LOGP, and LOGPC.
Parse the payload part of an IPA CCM ID RESP, return tlv_parsed format.
The odd payload format of those messages is structured as follows:
[out] | dec | Caller-provided/allocated output structure for parsed payload |
[in] | buf | Buffer containing the payload (excluding 1 byte msg_type) of the message |
[in] | len | Length of buf in octets |
References DEBUGPC, DLMI, ipa_ccm_idtag_name(), len, LOGL_DEBUG, LOGL_ERROR, LOGP, and LOGPC.
References ARRAY_SIZE, and idtag_names.
Referenced by ipa_ccm_id_get_parse(), ipa_ccm_id_resp_parse(), and ipa_ccm_idtag_parse_off().
Parse the payload part of an IPA CCM ID GET, return tlv_parsed format.
References ipa_ccm_idtag_parse_off(), and len.
int ipa_ccm_idtag_parse_off | ( | struct tlv_parsed * | dec, |
unsigned char * | buf, | ||
int | len, | ||
const int | len_offset | ||
) |
Parse the payload part of an IPA CCM ID GET, return tlv_parsed format.
WARNING: This function can only parse correctly IPA CCM ID GET/REQUEST messages, and only when len_offset is passed value of 1.
[out] | dec | Caller-provided/allocated output structure for parsed payload |
[in] | buf | Buffer containing the payload (excluding 1 byte msg_type) of the message |
[in] | len | Length of buf in octets |
[in] | len_offset | Offset from end of len field to start of value (ommiting tag). Must be 1! |
References DLMI, ipa_ccm_idtag_name(), len, LOGL_DEBUG, LOGL_ERROR, LOGP, and LOGPC.
Referenced by ipa_ccm_idtag_parse().
struct msgb * ipa_ccm_make_id_resp | ( | const struct ipaccess_unit * | dev, |
const uint8_t * | ies_req, | ||
unsigned int | num_ies_req | ||
) |
Generate IPA CCM ID RESP based on list of IEs.
[in] | dev | Descriptor describing identity data for response |
[in] | ies_req | List of IEIs to include in response |
[in] | num_ies_req | Number of IEIs in ies_req |
References DLINP, ipa_msg_alloc(), ipa_prepend_header(), IPA_STRING_MAX, IPAC_IDTAG_EQUIPVERS, IPAC_IDTAG_LOCATION1, IPAC_IDTAG_LOCATION2, IPAC_IDTAG_MACADDR, IPAC_IDTAG_SERNR, IPAC_IDTAG_SWVERSION, IPAC_IDTAG_UNIT, IPAC_IDTAG_UNITNAME, IPAC_MSGT_ID_RESP, IPAC_PROTO_IPACCESS, len, LOGL_INFO, LOGL_NOTICE, LOGP, msg, msgb_free(), and osmo_strlcpy().
Referenced by ipa_ccm_make_id_resp_from_req().
struct msgb * ipa_ccm_make_id_resp_from_req | ( | const struct ipaccess_unit * | dev, |
const uint8_t * | data, | ||
unsigned int | len | ||
) |
Generate IPA CCM ID RESP based on requets payload.
[in] | dev | Descriptor describing identity data for response |
[in] | data | Payload of the IPA CCM ID GET request |
[in] | len | Length of data in octets |
References msgb::data, DLINP, ipa_ccm_make_id_resp(), len, LOGL_ERROR, and LOGP.
References DEBUGP, DLINP, DLMI, osmo_fd::fd, ipa_ccm_send_id_ack(), ipa_ccm_send_pong(), IPAC_MSGT_ID_ACK, IPAC_MSGT_PING, IPAC_MSGT_PONG, len, LOGL_ERROR, LOGP, msg, and msg_type.
References DEBUGP, DLINP, DLMI, osmo_fd::fd, ipa_ccm_send_pong(), IPAC_MSGT_ID_ACK, IPAC_MSGT_PING, IPAC_MSGT_PONG, len, LOGL_ERROR, LOGP, msg, and msg_type.
References ipa_id_ack_msg, and ipa_send().
Referenced by ipa_ccm_rcvmsg_base().
References ipa_id_req_msg, and ipa_send().
References ipa_pong_msg, and ipa_send().
Referenced by ipa_ccm_rcvmsg_base(), and ipa_ccm_rcvmsg_bts_base().
int ipa_ccm_tlv_to_unitdata | ( | struct ipaccess_unit * | ud, |
const struct tlv_parsed * | tp | ||
) |
References len.
Referenced by ipa_ccm_make_id_resp().
int ipa_parse_unitid | ( | const char * | str, |
struct ipaccess_unit * | unit_data | ||
) |
References len.
Referenced by ipa_ccm_tlv_to_unitdata().
References len, ipaccess_head::len, msg, osmo_htons, and proto.
Referenced by ipa_ccm_make_id_resp().
References len, msg, proto, and ipaccess_head_ext::proto.
References DLINP, len, LOGL_ERROR, LOGP, and msg.
Referenced by ipa_ccm_send_id_ack(), ipa_ccm_send_id_req(), and ipa_ccm_send_pong().
Referenced by ipa_ccm_idtag_name().
Referenced by ipa_ccm_send_id_ack().
Referenced by ipa_ccm_send_id_req().
Referenced by ipa_ccm_send_pong().