VLAN Provisioning

Hi all,

I am running v1.2.12 on Ubuntu 20.04 in a small lab scenario.

Here is my provision script:

const now = Date.now();

let serialNumber = declare(“DeviceID.SerialNumber”, {value: 1}).value[0];
let response = ext(“creds”, “getManagementCreds”, serialNumber);

setupBaseWanPppConnection();

return;

function setupBaseWanPppConnection() {

log('Create new WANConnectionDevice');
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*", null, {path: 1});
log('Refresh WANConnectionDevice node');
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.*", {path: now}); 
log('Create new WANPPPConnection');
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.*", null, {path: 1});
log('Refresh WANPPPConnection node');
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.*.*", {path: now}); 
log('Update WANPPPConnection');
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.Name", {value: now}, {value: "Internet"});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.ConnectionType", {value: now}, {value: "IP_Routed"});
log('Set VLAN ID 111 to WANPPPConnection');
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.X_HW_VLAN", {value: now}, {value: "111"});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.Username", {value: 1},
     {value: response.username});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.Password", {value: 1},
     {value: response.password});
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.NATEnabled", {value: now}, {value: true});
log('Enable WANPPPConnection');
declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.Enable", {value: now}, {value: true});

}

Here is my external script: creds.js

function getCreds(args, callback) {
let serialNumber = args[0];
let result = {
username: “exmile”,
password: serialNumber
};

callback(null, result);
}

exports.getManagementCreds = getCreds;

Everything works, except the VLAN. I have tried every combination I could find but the VLAN does not want to change to VLAN111.

Any idea what I’m missing here? It feels like I need a pair of fresh eyes cause these ones can’t find the issue.

Any help will be appreciated :slight_smile:

What type is WANPPPConnection.1.X_HW_VLAN? Is it actually a string, or is it an int?

1 Like

Hi Dan,

It’s an int. I saw one of your previous posts here: Push WAN profile from ACS to CPE and thought I’d give it a try.

Although this post was for a Huawei CPE, hence the X_HW_VLAN. but it was the only post I could find relating to what I am trying to accomplish. The brand we use is bdcom and I tried contacting them, but they were unable to assist me. I’m not very clued up with the java side of life, but just trying to figure out how I can provision this vlan.

Not Java, EcmaScript (aka JavaScript). The only thing Java and JavaScript share is Java in the name.

As to your issue, try this:

declare("InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.1.X_HW_VLAN", {value: now}, {value: 111});

Sorry, I meant to say JavaScript.

I tried that but seems like the entire provision breaks and the WAN profile doesn’t get created.

I’m thinking, since it’s bdcom and not Huawei, X_HW_VLAN should be something relating to bdcom. I’ll play around again tomorrow once I’m back at the office and check if it works. I tried so many things.

I was able to create another solution where I use an XML file of the bdcom and push that file to the ONT but then the ONT reboots and doesn’t initiate the external script for PPPoE auth info.

What params actually exist under "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.*.WANPPPConnection.*? If you specify a parameter name that doesn’t actually exist in the data model for the particular CPE then GenieACS won’t send that param to the CPE.

BTW, this WANPPPConnection.1 really should be WANPPPConnection.*. The instance parameter number is not guaranteed.

Hi Dan,

I managed to find a few params under
InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANPPPConnection.*
and found these two:
InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANPPPConnection.1.X_RTK_IGMPProxy
InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANPPPConnection.1.X_RTK_ServiceType

There is nothing linked to the VLAN but I reached out to the manufacturer again and asked if they could assist. I’m waiting for a response for now.

The reason why I specify it as WANPPPConnection.1 is because the bdcom units have a default WAN profile for TR069 as 0. But I changed it to * based on your recommendation. Unfortunately, we already purchased 2000+ ONTs so we need to make this work. I’ll wait for bdcom’s reply for now.

Thank you for your help :slight_smile:

1 Like

The manufacturer confirmed that they only specify the VLAN param through custom firmware if requested. They sent me an example and seems like it will work.

They will create a new firmware for us for testing and once it works, we will have to update all the ONUs. But seems like we are winning.