# Hi, please help to create new internet interface PPPoE

**URL:** <https://forum.genieacs.com/t/hi-please-help-to-create-new-internet-interface-pppoe/7219>\
**Category:** Uncategorized\
**Created:** [October 31, 2025, 8:01pm UTC](https://forum.genieacs.com/t/hi-please-help-to-create-new-internet-interface-pppoe/7219 "2025-10-31T20:01:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![leonardorortizm](https://avatars.discourse-cdn.com/v4/letter/l/f475e1/32.png) [@leonardorortizm](https://forum.genieacs.com/u/leonardorortizm)\
**Post date:** [October 31, 2025, 8:01pm UTC](https://forum.genieacs.com/t/hi-please-help-to-create-new-internet-interface-pppoe/7219/1 "2025-10-31T20:01:55Z")

</div>

Hi,I’m working on creating a script to add a new connection on the TP-Link CPE XC220-G3v. I’ve put together this script, but unfortunately, it’s not working as expected. To troubleshoot, I’ve compared export files from a router with a new interface added via the web management interface and from a clean router to verify all the necessary parameters.I’d greatly appreciate any guidance or suggestions you might have—I’m still relatively new to GenieACS.Thank you in advance for your help!

script:

```auto
//new pppoe connection

log("Inicio del script prueba acs pppoe");

//=====================

// 1️⃣ create basic interfaces

//=====================

declare("Device.X_TP_GPON.Link.[]", null, {path:4});

declare("Device.Ethernet.Link.[]", null, {path:8});

declare("Device.Ethernet.VLANTermination.[]", null, {path:4});

declare("Device.IP.Interface.[]", null, {path:8});

declare("Device.PPP.Interface.[]", null, {path:3});

log("Interfaces primarias creadas");

//=====================

// 2️⃣ create other interfaces

//=====================

declare("Device.DHCPv6.Client.[]", null, {path:5});

declare("Device.DNS.Relay.Forwarding.[]", null, {path:9});

declare("Device.IP.Interface.8.IPv4Address.[]", null, {path:1});

declare("Device.IP.Interface.8.IPv6Address.[]", null, {path:1});

declare("Device.IP.Interface.8.IPv6Prefix.[]", null, {path:1});

declare("Device.NAT.InterfaceSetting.[]", null, {path:4});

declare("Device.Routing.Router.1.IPv4Forwarding.[]", null, {path:5});

declare("Device.Routing.Router.1.IPv6Forwarding.[]", null, {path:5});

log("Interfaces secundarias creadas correctamente");

//=====================

// 3️⃣ Config parameters before enable

//=====================

declare("Device.Ethernet.VLANTermination.4.VLANID", null, {value: "198"});

declare("Device.Ethernet.VLANTermination.4.X_TP_VLANMode", null, {value: "2"});

declare("Device.IP.Interface.8.Alias", null, {value: "PPPoE_CBY_ACS."});

declare("Device.IP.Interface.8.IPv4Address.1.AddressingType", null, {value: "IPCP"});

declare("Device.IP.Interface.8.X_TP_ConnType", null, {value: "PPPoE"});

declare("Device.IP.Interface.8.X_TP_IPv6AddrType", null, {value: "DHCPv6"});

declare("Device.IP.Interface.8.X_TP_ServiceType", null, {value: "Internet"});

declare("Device.PPP.Interface.3.AuthenticationProtocol", null, {value: "AUTO_AUTH"});

declare("Device.PPP.Interface.3.X_TP_UsernameDomainEnable", null, {value: true});

//=====================

// 4️⃣ Asign LowerLayers

//=====================

declare("Device.X_TP_GPON.Link.4.LowerLayers", null, {value: "Device.Optical.Interface.1."});

declare("Device.Ethernet.Link.8.LowerLayers", null, {value: "Device.X_TP_GPON.Link.4."});

declare("Device.Ethernet.VLANTermination.4.LowerLayers", null, {value: "Device.Ethernet.Link.8."});

declare("Device.PPP.Interface.3.LowerLayers", null, {value: "Device.Ethernet.VLANTermination.4."});

declare("Device.IP.Interface.8.LowerLayers", null, {value: "Device.PPP.Interface.3."});

declare("Device.DHCPv6.Client.5.Interface", null, {value: "Device.IP.Interface.8."});

declare("Device.DNS.Relay.Forwarding.9.Interface", null, {value: "Device.IP.Interface.8."});

declare("Device.NAT.InterfaceSetting.4.Interface", null, {value: "Device.IP.Interface.8."});

declare("Device.Routing.Router.1.IPv4Forwarding.5.Interface", null, {value: "Device.IP.Interface.8."});

declare("Device.Routing.Router.1.IPv6Forwarding.5.Interface", null, {value: "Device.IP.Interface.8."});

log("LowerLayers asignados correctamente");

//=====================

// 5️⃣ Enable interfaces

//=====================

declare("Device.X_TP_GPON.Link.4.Enable", null, {value: true});

declare("Device.Ethernet.Link.8.Enable", null, {value: true});

declare("Device.Ethernet.VLANTermination.4.Enable", null, {value: true});

declare("Device.PPP.Interface.3.Enable", null, {value: true});

declare("Device.IP.Interface.8.Enable", null, {value: true});

declare("Device.IP.Interface.8.IPv4Enable", null, {value: true});

declare("Device.IP.Interface.8.IPv6Enable", null, {value: true});

declare("Device.IP.Interface.8.IPv4Address.1.Enable", null, {value: true});

declare("Device.IP.Interface.8.IPv6Address.1.Enable", null, {value: true});

declare("Device.IP.Interface.8.IPv6Prefix.1.Enable", null, {value: true});

declare("Device.NAT.InterfaceSetting.4.Enable", null, {value: true});

declare("Device.Routing.Router.1.IPv4Forwarding.5.Enable", null, {value: true});

declare("Device.Routing.Router.1.IPv6Forwarding.5.Enable", null, {value: true});

//=====================

// 6️⃣routing & DNS parameters

//=====================

declare("Device.Routing.Router.1.IPv4Forwarding.5.StaticRoute", null, {value: false});

declare("Device.DHCPv6.Client.5.Enable", null, {value: true});

declare("Device.DHCPv6.Client.5.X_TP_EnableRaRouter", null, {value: true});

declare("Device.DNS.Relay.Forwarding.9.Type", null, {value: "DHCPv6"});

declare("Device.DNS.Relay.Forwarding.9.X_TP_DNSType", null, {value: "DNS_A"});

declare("Device.DNS.Relay.Forwarding.9.X_TP_DNSType", null, {value: "DNS_AAAA"});

//=====================

// 7️⃣ Credenctials PPPoE

//=====================

declare("Device.PPP.Interface.3.Username", null, {value: "acs-pppoe-testing123"});

declare("Device.PPP.Interface.3.Password", null, {value: "acs-pppoe-testing123"});

log("End script");

```

---

<div class="post-metadata">

**Author:** ![akcoder](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/akcoder/32/11_2.png) [@akcoder](https://forum.genieacs.com/u/akcoder)\
**Post date:** [November 3, 2025, 7:15pm UTC](https://forum.genieacs.com/t/hi-please-help-to-create-new-internet-interface-pppoe/7219/2 "2025-11-03T19:15:12Z")

</div>

You cannot depend on instance ids, they are not guaranteed.

`declare("Device.X_TP_GPON.Link.[]", null, {path:4});`

You’ve told GenieACS that you want 4 instances, but don’t specify the data for the 4 instances. Please see [this link for the syntax](https://forum.genieacs.com/t/working-with-objects-using-the-api/3415/2).

Your best bet is to build up the config you want on the CPE and replace the built-in config with that. Trying to create interfaces on the fly is going to be fraught with issues.
