36 #ifndef LWIP_HDR_APPS_SNMP_ASN1_H 37 #define LWIP_HDR_APPS_SNMP_ASN1_H 51 #define SNMP_ASN1_TLV_INDEFINITE_LENGTH 0x80 53 #define SNMP_ASN1_CLASS_MASK 0xC0 54 #define SNMP_ASN1_CONTENTTYPE_MASK 0x20 55 #define SNMP_ASN1_DATATYPE_MASK 0x1F 56 #define SNMP_ASN1_DATATYPE_EXTENDED 0x1F 59 #define SNMP_ASN1_CONTEXT_PDU_GET_REQ 0 60 #define SNMP_ASN1_CONTEXT_PDU_GET_NEXT_REQ 1 61 #define SNMP_ASN1_CONTEXT_PDU_GET_RESP 2 62 #define SNMP_ASN1_CONTEXT_PDU_SET_REQ 3 63 #define SNMP_ASN1_CONTEXT_PDU_TRAP 4 64 #define SNMP_ASN1_CONTEXT_PDU_GET_BULK_REQ 5 66 #define SNMP_ASN1_CONTEXT_VARBIND_NO_SUCH_OBJECT 0 67 #define SNMP_ASN1_CONTEXT_VARBIND_END_OF_MIB_VIEW 2 76 #define SNMP_ASN1_TLV_LENGTH(tlv) ((tlv).type_len + (tlv).length_len + (tlv).value_len) 77 #define SNMP_ASN1_SET_TLV_PARAMS(tlv, type_, length_len_, value_len_) do { (tlv).type = (type_); (tlv).type_len = 0; (tlv).length_len = (length_len_); (tlv).value_len = (value_len_); } while (0); 79 err_t snmp_asn1_dec_tlv(
struct snmp_pbuf_stream* pbuf_stream,
struct snmp_asn1_tlv* tlv);
80 err_t snmp_asn1_dec_u32t(
struct snmp_pbuf_stream *pbuf_stream,
u16_t len,
u32_t *value);
81 err_t snmp_asn1_dec_u64t(
struct snmp_pbuf_stream *pbuf_stream,
u16_t len,
u32_t *value);
82 err_t snmp_asn1_dec_s32t(
struct snmp_pbuf_stream *pbuf_stream,
u16_t len,
s32_t *value);
83 err_t snmp_asn1_dec_oid(
struct snmp_pbuf_stream *pbuf_stream,
u16_t len,
u32_t* oid,
u8_t* oid_len,
u8_t oid_max_len);
84 err_t snmp_asn1_dec_raw(
struct snmp_pbuf_stream *pbuf_stream,
u16_t len,
u8_t *buf,
u16_t* buf_len,
u16_t buf_max_len);
86 err_t snmp_ans1_enc_tlv(
struct snmp_pbuf_stream* pbuf_stream,
struct snmp_asn1_tlv* tlv);
88 void snmp_asn1_enc_length_cnt(
u16_t length,
u8_t *octets_needed);
89 void snmp_asn1_enc_u32t_cnt(
u32_t value,
u16_t *octets_needed);
90 void snmp_asn1_enc_u64t_cnt(
const u32_t *value,
u16_t *octets_needed);
91 void snmp_asn1_enc_s32t_cnt(
s32_t value,
u16_t *octets_needed);
92 void snmp_asn1_enc_oid_cnt(
const u32_t *oid,
u16_t oid_len,
u16_t *octets_needed);
93 err_t snmp_asn1_enc_oid(
struct snmp_pbuf_stream* pbuf_stream,
const u32_t *oid,
u16_t oid_len);
94 err_t snmp_asn1_enc_s32t(
struct snmp_pbuf_stream* pbuf_stream,
u16_t octets_needed,
s32_t value);
95 err_t snmp_asn1_enc_u32t(
struct snmp_pbuf_stream* pbuf_stream,
u16_t octets_needed,
u32_t value);
96 err_t snmp_asn1_enc_u64t(
struct snmp_pbuf_stream* pbuf_stream,
u16_t octets_needed,
const u32_t* value);
97 err_t snmp_asn1_enc_raw(
struct snmp_pbuf_stream* pbuf_stream,
const u8_t *raw,
u16_t raw_len);