[AGENT++] IPv4/IPv6 support for Agent++

Frank Fock fock at agentpp.com
Sat Aug 9 00:50:43 CEST 2014


Hello Neil,

That is indeed a shortcoming of AGENT++. We will try to add dual stack 
support ASAP.
However, I expect that there are some architectural changes necessary.
A positive side effect should be, that AGENT++ then will support 
multiple addresses
and ports like SNMP4J-Agent already does. (Which is also a requirement 
to support
TCP based transport protocols in the future.)
I do not expect that these changes will be ready to be released before 
end of October.

Meanwhile one option would be to use two Snmpx instances, but that would not
work well for many reasons (sending back the response, synchronization 
of the
SNMP counters/USM/VACM).

So at the moment, using two agents seems to be the safest approach.

Best regards,
Frank Fock

Am 08.08.2014 00:58, schrieb Neil Gendzwill:
> We would like to support requests from both IPv4 and IPv6 clients in a 
> dual-stack Linux environment (SL 6, if it matters).
>
> Our current code uses the Agent++ class Snmpx, which inherits from the 
> Snmp++ class Snmp.
>
> The Snmp class allows support for IPv6 by either setting a flag in one 
> of the constructors or using a constructor with two UDP addresses. 
> From uxsnmp.h:
>
> Snmp(int &status, const unsigned short port = 0, const bool bind_ipv6 
> = false);  // Source code shows this support is either/or depending on 
> bind_ipv6
> Snmp(int &status, const UdpAddress& 
> addr);                                                        // 
> Again, either/or depending on contents of addr
> Snmp(int &status, const UdpAddress& addr_v4, const UdpAddress& 
> addr_v6);   // This constructor supports both
>
> However, Snmpx  only supports the first two constructors and does not 
> support the dual address constructor.  It also defaults bind_ipv6 in 
> the first constructor to false.  On the surface of it, seems like it 
> supports only one protocol or the other.  From snmp_pp_ext.h:
>
> Snmpx(int &status, u_short port): Snmp(status, port) {}
> Snmpx(int &status, const NS_SNMP UdpAddress& addr): Snmp( status, 
> addr) {}
> // 3rd Snmp constructor unsupported
>
> How do I set up an agent that listens to requests in either protocol?  
> Or do I need two agents?
>
> Regards,
>
> Neil Gendzwill
> SED Systems
> Saskatoon, Canada
>
> _______________________________________________
> AGENTPP mailing list
> AGENTPP at agentpp.org
> https://oosnmp.net/mailman/listinfo/agentpp

-- 
---
AGENT++
Maximilian-Kolbe-Str. 10
73257 Koengen, Germany
https://agentpp.com
Phone: +49 7024 8688230
Fax:   +49 7024 8688231



More information about the AGENTPP mailing list