Deprecated fork of old network stack source from github. Please use official library instead: https://mbed.org/users/mbed_official/code/EthernetInterface/

Embed: (wiki syntax)

« Back to documentation index

asn1_dec.c File Reference

asn1_dec.c File Reference

Abstract Syntax Notation One (ISO 8824, 8825) decoding. More...

Go to the source code of this file.

Functions

err_t snmp_asn1_dec_type (struct pbuf *p, u16_t ofs, u8_t *type)
 Retrieves type field from incoming pbuf chain.
err_t snmp_asn1_dec_length (struct pbuf *p, u16_t ofs, u8_t *octets_used, u16_t *length)
 Decodes length field from incoming pbuf chain into host length.
err_t snmp_asn1_dec_u32t (struct pbuf *p, u16_t ofs, u16_t len, u32_t *value)
 Decodes positive integer (counter, gauge, timeticks) into u32_t.
err_t snmp_asn1_dec_s32t (struct pbuf *p, u16_t ofs, u16_t len, s32_t *value)
 Decodes integer into s32_t.
err_t snmp_asn1_dec_oid (struct pbuf *p, u16_t ofs, u16_t len, struct snmp_obj_id *oid)
 Decodes object identifier from incoming message into array of s32_t.
err_t snmp_asn1_dec_raw (struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw)
 Decodes (copies) raw data (ip-addresses, octet strings, opaque encoding) from incoming message into array.

Detailed Description

Abstract Syntax Notation One (ISO 8824, 8825) decoding.

Definition in file asn1_dec.c.


Function Documentation

err_t snmp_asn1_dec_length ( struct pbuf *  p,
u16_t  ofs,
u8_t *  octets_used,
u16_t *  length 
)

Decodes length field from incoming pbuf chain into host length.

Parameters:
ppoints to a pbuf holding an ASN1 coded length
ofspoints to the offset within the pbuf chain of the ASN1 coded length
octets_usedreturns number of octets used by the length code
lengthreturn host order length, upto 64k
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) decode

Definition at line 85 of file asn1_dec.c.

err_t snmp_asn1_dec_oid ( struct pbuf *  p,
u16_t  ofs,
u16_t  len,
struct snmp_obj_id oid 
)

Decodes object identifier from incoming message into array of s32_t.

Parameters:
ppoints to a pbuf holding an ASN1 coded object identifier
ofspoints to the offset within the pbuf chain of the ASN1 coded object identifier
lenlength of the coded object identifier
oidreturn object identifier struct
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) decode

Definition at line 429 of file asn1_dec.c.

err_t snmp_asn1_dec_raw ( struct pbuf *  p,
u16_t  ofs,
u16_t  len,
u16_t  raw_len,
u8_t *  raw 
)

Decodes (copies) raw data (ip-addresses, octet strings, opaque encoding) from incoming message into array.

Parameters:
ppoints to a pbuf holding an ASN1 coded raw data
ofspoints to the offset within the pbuf chain of the ASN1 coded raw data
lenlength of the coded raw data (zero is valid, e.g. empty string!)
raw_lenlength of the raw return value
rawreturn raw bytes
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) decode

Definition at line 596 of file asn1_dec.c.

err_t snmp_asn1_dec_s32t ( struct pbuf *  p,
u16_t  ofs,
u16_t  len,
s32_t *  value 
)

Decodes integer into s32_t.

Parameters:
ppoints to a pbuf holding an ASN1 coded integer
ofspoints to the offset within the pbuf chain of the ASN1 coded integer
lenlength of the coded integer field
valuereturn host order integer
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
Note:
ASN coded integers are _always_ signed!

Definition at line 333 of file asn1_dec.c.

err_t snmp_asn1_dec_type ( struct pbuf *  p,
u16_t  ofs,
u8_t *  type 
)

Retrieves type field from incoming pbuf chain.

Parameters:
ppoints to a pbuf holding an ASN1 coded type field
ofspoints to the offset within the pbuf chain of the ASN1 coded type field
typereturn ASN1 type
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) decode

Definition at line 52 of file asn1_dec.c.

err_t snmp_asn1_dec_u32t ( struct pbuf *  p,
u16_t  ofs,
u16_t  len,
u32_t *  value 
)

Decodes positive integer (counter, gauge, timeticks) into u32_t.

Parameters:
ppoints to a pbuf holding an ASN1 coded integer
ofspoints to the offset within the pbuf chain of the ASN1 coded integer
lenlength of the coded integer field
valuereturn host order integer
Returns:
ERR_OK if successfull, ERR_ARG if we can't (or won't) decode
Note:
ASN coded integers are _always_ signed. E.g. +0xFFFF is coded as 0x00,0xFF,0xFF. Note the leading sign octet. A positive value of 0xFFFFFFFF is preceded with 0x00 and the length is 5 octets!!

Definition at line 240 of file asn1_dec.c.