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.

Good Day

I found this post while searching for ways to create a WAN PPP connection on a CPE via GenieACS.

What i’m trying to achieve is similar except i need GenieACS to create the WAN PPPoE interface and then the username and password fields would then be updated with the clients details.

We are using Splynx with the GenieACS integration as well as BDCOM Onu’s.

Everything works as expected with our current provisioning flow whereby all the interfaces ( WLAN ,WAN PPPoE , etc ) gets updated with the clients details.
This all works because the OLT already creates the necessary interfaces which then just gets updated. ( Via the Pre-Config-Template that i created on the OLT )

Im trying to find easier and more effecient ways to provision the ONU and managed to get it to a point whereby once the ONU is plugged in and the OLT runs the config template for the type of ONU it detects , then it is automatically add into GenieACS and Splynx where the provisioning flow in splynx takes over and the ONU gets configured.

The problem im facing is that once the ONU gets reset to Factory Defaults, then it gets added back into GenieACS / Splynx but because the OLT does not re-configure the ONU, the WAN PPPoE interface does not get created. I need to be able to tell Splynx/GenieACS to create the WAN Interface , but im not sure on which syntax to use and where.

The only other problem is that it needs to be done from Splynx and Not GenieACS , as any changes in configs/provisions in GenieACS could cause the connection and provisioning from within Splynx to break ( i have already found out from Splynx as i have tried something else in GenieACS before and they mentioned to try not change any GenieACS configs)

Any help would be appreciated.