Hi,

I am running an SNMP subagent using agentX protocol and all MIB values
of type Counter64 as shown in big_endian order even though my desktop
is Intel (little endian).

The basic problem arises because Counter64 is not a direct data type
rather its a struct {high, low} and the value is stored using memmove
which copies the LSB into high.

Sample code is below:

int64_t a = 99;
snmp_set_var_typed_value (..ASN_COUNTER64, & a);

If I explicitly set is as below, it works. But doing this for many
variables and explicitly copying to high/low is cumbersome.

struct counter64 a = {0, 99};
snmp_set_var_typed_value (..ASN_COUNTER64, & a);

Is there a way we can use int64_t and get little endian?

P.S. During my search, I did come across code handling Endianess based
on session.flags (AGENTX_MSG_FLAG_NETWORK_BYTE_ORDER) but
snmp_pdu_create doesn't set those flags.
-- 
Thanks,
Regards,
Chaitanya T K.


_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to