STILL unable to set protocol filters with cnMaestro

so I posted this issue on this forum and the cnMaestro forum several months ago, and the release notes for 16.0.0.1 state that this issue was fixed but it for sure is NOT fixed.  I've been trying to set the protocol filters on 450SMs with this template. cnMaestro says it processes and completes but the SM is not updated.

VERY FRUSTRATING!!! :-/

{
"networkConfig": {
"webAutoUpdate": 3,
"ethernetLinkSpeed": 12,
"packetFilterArp": 0,
   "packetFilterSnmpIpv6": 1,
   "packetFilterSmb": 1,
   "packetFilterPppoe": 0,
   "packetFilterOtherIpv4": 0,
   "packetFilterAllIpv4": 0,
   "packetFilterBootpServer": 1,
   "packetFilterBootpClientIpv6": 1,
   "packetFilterMulticastIpv6": 1,
   "packetFilterAllIpv6Others": 0,
   "packetFilterSnmp": 1,
   "packetFilterSmbIpv6": 1,
   "packetFilterBootpServerIpv6": 1,
   "packetFilterAllIpv6": 0,
   "packetFilterAllOthers": 0,
   "packetFilterBootpClient": 1,
   "packetFilterMulticastIpv4": 1,
   "packetFilterDirection": 1
},
"cfgFileString": "Canopy configuration file",
"cfgFileVersion": "1.0"
}

Hi Sean,

Looks like you're using valid JSON, but the format is not correct for the config file to apply it. The "networkConfig" block is a child of the "userParameters" block, which you don't have in your config file. Try this:

{
    "userParameters": {
        "networkConfig": {
            "webAutoUpdate": 3,
            "ethernetLinkSpeed": 12,
            "packetFilterArp": 0,
            "packetFilterSnmpIpv6": 1,
            "packetFilterSmb": 1,
            "packetFilterPppoe": 0,
            "packetFilterOtherIpv4": 0,
            "packetFilterAllIpv4": 0,
            "packetFilterBootpServer": 1,
            "packetFilterBootpClientIpv6": 1,
            "packetFilterMulticastIpv6": 1,
            "packetFilterAllIpv6Others": 0,
            "packetFilterSnmp": 1,
            "packetFilterSmbIpv6": 1,
            "packetFilterBootpServerIpv6": 1,
            "packetFilterAllIpv6": 0,
            "packetFilterAllOthers": 0,
            "packetFilterBootpClient": 1,
            "packetFilterMulticastIpv4": 1,
            "packetFilterDirection": 1
        }
    },
    "cfgFileString": "Canopy configuration file",
    "cfgFileVersion": "1.0"
}

I tried this on one of my radios and it works as expected.

My general recommendation is to start by exporting the current config when it's set up the way you want it to be, and then remove whatever you don't want, being careful to make sure the parent/child nesting is intact.

I recently answered a very similar question here, but it also includes some info regarding adding variables to your cnMaestro templates, which might be of interest to you: http://community.cambiumnetworks.com/t5/PMP-450/450i-Advanced-LAN1-IP-Configuration-script/m-p/101021/highlight/true#M7722

Let me know if this helped.

-Al

1 Like

ok, that seems to have worked.

this points out an obvious flaw in your UI design, JSON config files are a terrible way to have users interact with your system and expect good results.

2 cents 


@Sean Heskett wrote:

ok, that seems to have worked.

this points out an obvious flaw in your UI design, JSON config files are a terrible way to have users interact with your system and expect good results.

2 cents 


Glad to hear that worked!

I hear you about the JSON config. The reason it was done that way is that it currently uses the exact same format used by the PMP radios' UI, making it convenient to export from the PMP GUI and import into cnMaestro and vice-versa. Most customers are pretty familiar with the existing config file format, so the hope was it's an easy migration to cnMaestro. The cnMaestro user guide has some good tips on how to best generate these files, but it's similar to what I mentioned above:

  • Set up an SM they way you want it
  • Export the config from the radio
  • Modify the config to your liking
  • Upload via cnMaestro to other devices.

This should ensure the formatting is right since you're starting with a base config the radio itself is generating.

If you have suggestions on how to improve this, I would definitely bring them up in the cnMaestro subforum, as they're continuously working on improving the product to meet our customers' needs. A long-term plan has always been to allow a GUI-like config experience from the cnMaestro side, but it's a non-trivial task to get that working and keep it up to date with every device we offer, so it's not something that would have a quick turnaround with the amount of other projects we have going on. In the meantime, I recommend you check out the Template Variables feature, which may be of some use.

Thanks,

-Al

FYI the instructions you gave for creating a template are the exact steps i took to create my template that failed.  

also, why not just have a tool that mimics the UI of the device, set everything up how you want in there and then hit save as template.  it could still all be JSON in the background but then at least the user has a familiar UI to do all the config parameters.  shouldn't be too hard being as you already have all the HTML for the device UI and JSON already works on all the devices and cnMaestro.  

exporting a config and sifting thru the JSON hopeing you don't delete something you shouldn't have (which is what i did) is a really bad UI design.  Steve Jobs would not be impressed lol.

2 cents

1 Like

@Sean Heskett wrote:

FYI the instructions you gave for creating a template are the exact steps i took to create my template that failed.  

also, why not just have a tool that mimics the UI of the device, set everything up how you want in there and then hit save as template.  it could still all be JSON in the background but then at least the user has a familiar UI to do all the config parameters.  shouldn't be too hard being as you already have all the HTML for the device UI and JSON already works on all the devices and cnMaestro.  

exporting a config and sifting thru the JSON hopeing you don't delete something you shouldn't have (which is what i did) is a really bad UI design.  Steve Jobs would not be impressed lol.

2 cents


Yeah, I read over the cnMaestro instructions after talking to you and the section regarding the steps to create a template has a line to the effect of "copy the lines you care about to a new file", but that won't work if you're not also copying the nested parent sections. Problem is, as you mention, that requires everyone to know something about JSON, which is probably not common knowlege.

As for your comments on the existing GUI HTML, there's a sliiiiight issue. Our GUI HTML is generated on the fly from an XML template, not stored in a pre-formed set of pages. This makes it difficult to try to maintain a tool that would mimic that easily to plug into cnMaestro, or believe me we'd already have done it :D

Hopefully we can get there some day, but it would be a big undertaking and I'm sure Steve Jobs would probably be a bit annoyed with what we're dealing with right now :D

I have been thinking about a separate tool for just generating the config files from a stripped-down GUI tool, but I'd need a lot of free time...

3 Likes

@Al wrote:

Hi Sean,

Looks like you're using valid JSON, but the format is not correct for the config file to apply it. The "networkConfig" block is a child of the "userParameters" block, which you don't have in your config file. Try this:

{
    "userParameters": {
        "networkConfig": {
            "webAutoUpdate": 3,
            "ethernetLinkSpeed": 12,
            "packetFilterArp": 0,
            "packetFilterSnmpIpv6": 1,
            "packetFilterSmb": 1,
            "packetFilterPppoe": 0,
            "packetFilterOtherIpv4": 0,
            "packetFilterAllIpv4": 0,
            "packetFilterBootpServer": 1,
            "packetFilterBootpClientIpv6": 1,
            "packetFilterMulticastIpv6": 1,
            "packetFilterAllIpv6Others": 0,
            "packetFilterSnmp": 1,
            "packetFilterSmbIpv6": 1,
            "packetFilterBootpServerIpv6": 1,
            "packetFilterAllIpv6": 0,
            "packetFilterAllOthers": 0,
            "packetFilterBootpClient": 1,
            "packetFilterMulticastIpv4": 1,
            "packetFilterDirection": 1
        }
    },
    "cfgFileString": "Canopy configuration file",
    "cfgFileVersion": "1.0"
}

I tried this on one of my radios and it works as expected.

My general recommendation is to start by exporting the current config when it's set up the way you want it to be, and then remove whatever you don't want, being careful to make sure the parent/child nesting is intact.

I recently answered a very similar question here, but it also includes some info regarding adding variables to your cnMaestro templates, which might be of interest to you: http://community.cambiumnetworks.com/t5/PMP-450/450i-Advanced-LAN1-IP-Configuration-script/m-p/101021/highlight/true#M7722

Let me know if this helped.

-Al


so even though this script above has the following lines, IPv6 SMB and SNMP are being unchecked when we run the script. (see screen shot)

"packetFilterSnmpIpv6": 1,

"packetFilterSmbIpv6": 1,

Hmm, you’re right. Let me see if we can figure out what’s going on there. Thanks for the heads up.