Contiki-NG
Loading...
Searching...
No Matches

Macros

#define BER_DATA_TYPE_EOC   0x00
 End-of-Content.
 
#define BER_DATA_TYPE_INTEGER   0x02
 Integer.
 
#define BER_DATA_TYPE_OCTET_STRING   0x04
 Octet String.
 
#define BER_DATA_TYPE_NULL   0x05
 Null.
 
#define BER_DATA_TYPE_OBJECT_IDENTIFIER   0x06
 Object Identifier.
 
#define BER_DATA_TYPE_SEQUENCE   0x30
 Sequence.
 
#define BER_DATA_TYPE_TIMETICKS   0x43
 TimeTicks.
 
#define BER_DATA_TYPE_NO_SUCH_INSTANCE   0x81
 No Such Instance.
 
#define BER_DATA_TYPE_END_OF_MIB_VIEW   0x82
 End of MIB View.
 
#define BER_DATA_TYPE_PDU_GET_REQUEST   0xA0
 PDU Get Request.
 
#define BER_DATA_TYPE_PDU_GET_NEXT_REQUEST   0xA1
 PDU Get Next Request.
 
#define BER_DATA_TYPE_PDU_GET_RESPONSE   0xA2
 PDU Get Reponse.
 
#define BER_DATA_TYPE_PDU_SET_REQUEST   0xA3
 PDU Set Request.
 
#define BER_DATA_TYPE_PDU_TRAP   0xA4
 PDU Trap.
 
#define BER_DATA_TYPE_PDU_GET_BULK   0xA5
 PDU Get Bulk.
 

Functions

int snmp_ber_encode_type (snmp_packet_t *snmp_packet, uint8_t type)
 Encodes a type.
 
int snmp_ber_encode_length (snmp_packet_t *snmp_packet, uint16_t length)
 Encodes the length.
 
int snmp_ber_encode_integer (snmp_packet_t *snmp_packet, uint32_t integer)
 Encodes an integer.
 
int snmp_ber_encode_timeticks (snmp_packet_t *snmp_packet, uint32_t timeticks)
 Encodes a timeticks.
 
int snmp_ber_encode_string_len (snmp_packet_t *snmp_packet, const char *str, uint32_t length)
 Encodes a string.
 
int snmp_ber_encode_oid (snmp_packet_t *snmp_packet, snmp_oid_t *oid)
 Encodes a Oid.
 
int snmp_ber_encode_null (snmp_packet_t *snmp_packet, uint8_t type)
 Encodes a null.
 
int snmp_ber_decode_type (snmp_packet_t *snmp_packet, uint8_t *type)
 Decodes a type.
 
int snmp_ber_decode_length (snmp_packet_t *snmp_packet, uint8_t *length)
 Decodes a length.
 
int snmp_ber_decode_integer (snmp_packet_t *snmp_packet, uint32_t *integer)
 Decodes an integer.
 
int snmp_ber_decode_timeticks (snmp_packet_t *snmp_packet, uint32_t *timeticks)
 Decodes a timeticks.
 
int snmp_ber_decode_string_len_buffer (snmp_packet_t *snmp_packet, const char **str, uint32_t *length)
 Decodes a string.
 
int snmp_ber_decode_null (snmp_packet_t *snmp_packet)
 Decodes a null.
 
int snmp_ber_decode_oid (snmp_packet_t *snmp_packet, snmp_oid_t *oid)
 Decodes an OID.
 

Detailed Description

This group contains the BER implementation

Function Documentation

◆ snmp_ber_decode_integer()

int snmp_ber_decode_integer ( snmp_packet_t * snmp_packet,
uint32_t * integer )

Decodes an integer.

Parameters
snmp_packetA pointer to the snmp packet
integerA pointer to the integer
Returns
0 if error or 1 if success

Definition at line 353 of file snmp-ber.c.

References BER_DATA_TYPE_INTEGER.

Referenced by snmp_message_decode().

◆ snmp_ber_decode_length()

int snmp_ber_decode_length ( snmp_packet_t * snmp_packet,
uint8_t * length )

Decodes a length.

Parameters
snmp_packetA pointer to the snmp packet
lengthA pointer to the length
Returns
0 if error or 1 if success

Definition at line 334 of file snmp-ber.c.

References snmp_packet_t::in, and snmp_packet_t::used.

Referenced by snmp_ber_decode_oid(), and snmp_message_decode().

◆ snmp_ber_decode_null()

int snmp_ber_decode_null ( snmp_packet_t * snmp_packet)

Decodes a null.

Parameters
snmp_packetA pointer to the snmp packet
Returns
0 if error or 1 if success

Definition at line 494 of file snmp-ber.c.

References snmp_packet_t::in, and snmp_packet_t::used.

Referenced by snmp_message_decode().

◆ snmp_ber_decode_oid()

int snmp_ber_decode_oid ( snmp_packet_t * snmp_packet,
snmp_oid_t * oid )

Decodes an OID.

Parameters
snmp_packetpointer to the snmp packet
oidA pointer to the OID
Returns
0 if error or 1 if success

Definition at line 432 of file snmp-ber.c.

References BER_DATA_TYPE_OBJECT_IDENTIFIER, snmp_oid_s::data, snmp_packet_t::in, snmp_oid_s::length, snmp_ber_decode_length(), snmp_ber_decode_type(), SNMP_MSG_OID_MAX_LEN, and snmp_packet_t::used.

Referenced by snmp_message_decode().

◆ snmp_ber_decode_string_len_buffer()

int snmp_ber_decode_string_len_buffer ( snmp_packet_t * snmp_packet,
const char ** str,
uint32_t * length )

Decodes a string.

Parameters
snmp_packetA pointer to the snmp packet
strA pointer to the string
lengthA pointer to the string length
Returns
0 if error or 1 if success

Definition at line 359 of file snmp-ber.c.

References BER_DATA_TYPE_OCTET_STRING, snmp_packet_t::in, snmp_ber_decode_type(), and snmp_packet_t::used.

Referenced by snmp_message_decode().

◆ snmp_ber_decode_timeticks()

int snmp_ber_decode_timeticks ( snmp_packet_t * snmp_packet,
uint32_t * timeticks )

Decodes a timeticks.

Parameters
snmp_packetA pointer to the snmp packet
timeticksA pointer to the timeticks
Returns
0 if error or 1 if success

Definition at line 347 of file snmp-ber.c.

References BER_DATA_TYPE_TIMETICKS.

Referenced by snmp_message_decode().

◆ snmp_ber_decode_type()

int snmp_ber_decode_type ( snmp_packet_t * snmp_packet,
uint8_t * type )

Decodes a type.

Parameters
snmp_packetA pointer to the snmp packet
typeA pointer to the type
Returns
0 if error or 1 if success

Definition at line 321 of file snmp-ber.c.

References snmp_packet_t::in, and snmp_packet_t::used.

Referenced by snmp_ber_decode_oid(), snmp_ber_decode_string_len_buffer(), and snmp_message_decode().

◆ snmp_ber_encode_integer()

int snmp_ber_encode_integer ( snmp_packet_t * snmp_packet,
uint32_t integer )

Encodes an integer.

Parameters
snmp_packetA pointer to the snmp packet
integerA integer
Returns
0 if error or 1 if success

Definition at line 152 of file snmp-ber.c.

References BER_DATA_TYPE_INTEGER.

Referenced by snmp_message_encode().

◆ snmp_ber_encode_length()

int snmp_ber_encode_length ( snmp_packet_t * snmp_packet,
uint16_t length )

Encodes the length.

Parameters
snmp_packetA pointer to the snmp packet
lengthA length
Returns
0 if error or 1 if success

Definition at line 96 of file snmp-ber.c.

References snmp_packet_t::max, snmp_packet_t::out, and snmp_packet_t::used.

Referenced by snmp_ber_encode_oid(), snmp_ber_encode_string_len(), and snmp_message_encode().

◆ snmp_ber_encode_null()

int snmp_ber_encode_null ( snmp_packet_t * snmp_packet,
uint8_t type )

Encodes a null.

Parameters
snmp_packetA pointer to the snmp packet
typeA type
Returns
0 if error or 1 if success

Definition at line 259 of file snmp-ber.c.

References snmp_packet_t::max, snmp_packet_t::out, snmp_ber_encode_type(), and snmp_packet_t::used.

Referenced by snmp_message_encode().

◆ snmp_ber_encode_oid()

int snmp_ber_encode_oid ( snmp_packet_t * snmp_packet,
snmp_oid_t * oid )

Encodes a Oid.

Parameters
snmp_packetA pointer to the snmp packet
oidA OID
Returns
0 if error or 1 if success

Definition at line 186 of file snmp-ber.c.

References BER_DATA_TYPE_OBJECT_IDENTIFIER, snmp_oid_s::data, snmp_oid_s::length, snmp_packet_t::max, snmp_packet_t::out, snmp_ber_encode_length(), snmp_ber_encode_type(), and snmp_packet_t::used.

Referenced by snmp_message_encode().

◆ snmp_ber_encode_string_len()

int snmp_ber_encode_string_len ( snmp_packet_t * snmp_packet,
const char * str,
uint32_t length )

Encodes a string.

Parameters
snmp_packetA pointer to the snmp packet
strA string
lengthThe string length
Returns
0 if error or 1 if success

Definition at line 158 of file snmp-ber.c.

References BER_DATA_TYPE_OCTET_STRING, snmp_packet_t::max, snmp_packet_t::out, snmp_ber_encode_length(), snmp_ber_encode_type(), and snmp_packet_t::used.

Referenced by snmp_message_encode().

◆ snmp_ber_encode_timeticks()

int snmp_ber_encode_timeticks ( snmp_packet_t * snmp_packet,
uint32_t timeticks )

Encodes a timeticks.

Parameters
snmp_packetA pointer to the snmp packet
timeticksA TimeTicks
Returns
0 if error or 1 if success

Definition at line 146 of file snmp-ber.c.

References BER_DATA_TYPE_TIMETICKS.

Referenced by snmp_message_encode().

◆ snmp_ber_encode_type()

int snmp_ber_encode_type ( snmp_packet_t * snmp_packet,
uint8_t type )

Encodes a type.

Parameters
snmp_packetA pointer to the snmp packet
typeA type
Returns
0 if error or 1 if success

Definition at line 83 of file snmp-ber.c.

References snmp_packet_t::max, snmp_packet_t::out, and snmp_packet_t::used.

Referenced by snmp_ber_encode_null(), snmp_ber_encode_oid(), snmp_ber_encode_string_len(), and snmp_message_encode().