Musson Industrial's Embr-SNMP Module (BETA)

I have SEL 2742 and it works good with SHA - 512 and AES - 128. Let me know if you want to me to test something specific.
Great work, Ben :+1:

2 Likes

Interesting, mine disconnects number one when the second connects.

What’s the make and model of the two devices?

@andrew.budaiev are you in a position to test with multiple SNMPv3 devices concurrently?

I have one Mikrotik HAP AX3 and one Mikrotik HAP AC3

This post seems relevant; try and check if both devices have the same Engine ID set.

This is a good find. I will also find some other SNMP devices.

Note to anyone who doesn't know what devices use SNMP:

Profinet support for devices normally relies on SNMP, so if your device has Profinet, its likely running SNMP.

Version 0.2.0 is now available for both 8.1 and 8.3.

Upgrading from 0.1.0 is not possible; you will need to uninstall + delete all Embr-SNMP IDB tables.
The configuration should be stable from this point forward.

Changes

  • Hostname and Port fields have been combined into a single Address field.
    • Example: udp:127.0.0.1/161, tcp:127.0.0.1/161
    • This will make it easier to add TLS/DTLS support in the future.
  • Rename auth/privacy protocol enums.

Fixes

  • Moved SnmpContext initialization into Device::startup.
  • Initialize private enterprise number.
2 Likes

I just ran this up in 8.3rc1 and it works great, but your html in the settings popup doesnt render it just prints.

Also, this was the fix, it's working just fine now. Two devices working great.

Is this going to be a free module? I’m very impressed with the functionality shown here so far.

2 Likes

Yes, the module will be free.

The license may need to change to GPLv2 if we want to use Mibble for MIB parsing, but that won’t have any effect on the end users.

2 Likes

You won't be able to distribute a signed module with any GPL content inside. IANAL, yada yada.

I’ve seen this mentioned before; what about the signing process is incompatible with GPLv2? (Specifically v2, v3 is an entirely separate abomination).

Here’s my understanding of GPLv2:

  • Include copyright notice.
  • Provide source code.
  • All modifications must also be GPLv2.

Can’t all of these be achieved with a signed module?

I am also not a lawyer :upside_down_face:

The part of the GPL you can't comply with is the requirement to allow user substitution of just the GPL component with an alternate build. That would require re-signing. Since an end user cannot use the module signature with an altered jar, you cannot distribute that modl file.

This is why my Image Streamer driver requires the end user to install FFmpeg and OpenCV themselves.

(Note that this is a key requirement of LGPL as well.)

Further, your use of GPL linked inside a commercial application is probably a problem, too. (Only LGPL allows this.)

That’s only a v3 specific requirement?

Either way, I do see your point.

Given that these are open source and you aren't selling them I'd be tempted to shrug this all off.

Proprietary modules being sold or listed in the market place are a different story entirely, though.

1 Like

That was the thought process behind making Embr-SNMP GPLv2 licensed - just go with the flow.

But, I am concerned that the GPLv2-ness of the module would transfer to the Ignition system as a whole; i.e. someone distributing an Ignition system using a GPLv2 licensed module would (in theory) need to abide by the same terms.

No, GPL2 and GPL3 and LGPL2 and LGPL3.

The GPL's biggest restrictions happen when you distribute, regardless whether money changes hands.

Probably not a good idea. But IANAL, and one may be needed for this. There is a reason the GPL is considered poison in any commercial context.

(I would not use any GPL library in Ignition at all, and will not distribute any LGPL library inside my modules.)

They would need to be able to supply their users with the entire source for all of Ignition. Not just your module.

Can you pull some strings? Asking for a friend :smiley:

1 Like

Heh. Sorry.

But really, the only way I know to use any GPL library in a commercial project is to ship with linkage to an LGPL version of that library, and allow the end user to substitute the ABI-compatible GPL library at runtime. (This is effectively what happens with FFmpeg in my Image Streamer driver module.)

1 Like