mirror of git://git.sysmocom.de/ofono
Add parser for bearer description objects
This commit is contained in:
parent
9b3d97d705
commit
3bc3d985ab
|
@ -1099,6 +1099,25 @@ static gboolean parse_dataobj_browser_termination_cause(
|
|||
return parse_dataobj_common_byte(iter, byte);
|
||||
}
|
||||
|
||||
/* Defined in TS 102.223 Section 8.52 */
|
||||
static gboolean parse_dataobj_bearer_description(
|
||||
struct comprehension_tlv_iter *iter, void *user)
|
||||
{
|
||||
struct stk_bearer_description *bd = user;
|
||||
const unsigned char *data;
|
||||
unsigned int len = comprehension_tlv_iter_get_length(iter);
|
||||
|
||||
if (len < 1)
|
||||
return FALSE;
|
||||
|
||||
data = comprehension_tlv_iter_get_data(iter);
|
||||
bd->type = data[0];
|
||||
bd->len = len - 1;
|
||||
memcpy(bd->pars, data + 1, bd->len);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Defined in TS 102.223 Section 8.72 */
|
||||
static gboolean parse_dataobj_text_attr(struct comprehension_tlv_iter *iter,
|
||||
void *user)
|
||||
|
@ -1231,6 +1250,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
|
|||
return parse_dataobj_provisioning_file_reference;
|
||||
case STK_DATA_OBJECT_TYPE_BROWSER_TERMINATION_CAUSE:
|
||||
return parse_dataobj_browser_termination_cause;
|
||||
case STK_DATA_OBJECT_TYPE_BEARER_DESCRIPTION:
|
||||
return parse_dataobj_bearer_description;
|
||||
case STK_DATA_OBJECT_TYPE_TEXT_ATTRIBUTE:
|
||||
return parse_dataobj_text_attr;
|
||||
case STK_DATA_OBJECT_TYPE_FRAME_ID:
|
||||
|
|
|
@ -321,6 +321,17 @@ enum stk_browser_termination_cause {
|
|||
STK_BROWSER_ERROR_TERMINATION = 0x01
|
||||
};
|
||||
|
||||
enum stk_bearer_type {
|
||||
STK_BEARER_TYPE_DEFAULT = 0x03,
|
||||
STK_BEARER_TYPE_INDEPENDENT = 0x04,
|
||||
STK_BEARER_TYPE_BLUETOOTH = 0x05,
|
||||
STK_BEARER_TYPE_IRDA = 0x06,
|
||||
STK_BEARER_TYPE_RS232 = 0x07,
|
||||
STK_BEARER_TYPE_PACKET_DATA_SERVICE = 0x08,
|
||||
STK_BEARER_TYPE_I_WLAN = 0x0a,
|
||||
STK_BEARER_TYPE_USB = 0x10
|
||||
};
|
||||
|
||||
/* For data object that only has a byte array with undetermined length */
|
||||
struct stk_common_byte_array {
|
||||
unsigned char *array;
|
||||
|
@ -520,6 +531,18 @@ struct stk_timer_value {
|
|||
unsigned char second;
|
||||
};
|
||||
|
||||
/*
|
||||
* According to 102.223 Section 8.52 the length of CTLV is 1 byte. This means
|
||||
* that the maximum size is 127 according to the rules of CTLVs. This size also
|
||||
* includes bearer type for 1 byte, so the maxmimum size of bearer parameters
|
||||
* is 126.
|
||||
*/
|
||||
struct stk_bearer_description {
|
||||
unsigned char type;
|
||||
unsigned char pars[126];
|
||||
unsigned int len;
|
||||
};
|
||||
|
||||
/*
|
||||
* According to 102.223 Section 8.72 the length of text attribute CTLV is 1
|
||||
* byte. This means that the maximum size is 127 according to the rules
|
||||
|
|
Loading…
Reference in New Issue