diff --git a/ffac-dsl/LICENSE b/ffac-dsl/LICENSE new file mode 100644 index 00000000..fa1f0002 --- /dev/null +++ b/ffac-dsl/LICENSE @@ -0,0 +1,24 @@ +BSD 2-Clause License + +Copyright (c) 2024, Florian Maurer + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/ffac-dsl/Makefile b/ffac-dsl/Makefile new file mode 100644 index 00000000..e96d19b6 --- /dev/null +++ b/ffac-dsl/Makefile @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2024 Florian Maurer +# SPDX-License-Identifier: BSD-2-Clause +include $(TOPDIR)/rules.mk + +PKG_NAME:=ffac-dsl +PKG_VERSION:=1.0 +PKG_RELEASE:=1 + +PKG_LICENSE:=BSD-2-Clause + +include $(TOPDIR)/../package/gluon.mk + +define Package/$(PKG_NAME) + TITLE:=Configure Gluon firmware for DSL usage + DEPENDS:=ppp +endef + +define Package/$(PKG_NAME)/description + This package allows to set DSL credentials in gluon to connect WAN directly from DSL. + Besides the username and password, the vlanid can be set. +endef + +$(eval $(call BuildPackageGluon,$(PKG_NAME))) diff --git a/ffac-dsl/luasrc/lib/gluon/upgrade/510-wan-dsl b/ffac-dsl/luasrc/lib/gluon/upgrade/510-wan-dsl new file mode 100755 index 00000000..e3738222 --- /dev/null +++ b/ffac-dsl/luasrc/lib/gluon/upgrade/510-wan-dsl @@ -0,0 +1,34 @@ +#!/usr/bin/lua + +local uci = require('simple-uci').cursor() + +local enabled = uci:get_bool('gluon', 'dsl', 'enabled', false) +local vlanid = uci:get('gluon', 'dsl', 'vlanid') +local username = uci:get('gluon', 'dsl', 'username') +local password = uci:get('gluon', 'dsl', 'password') + +if enabled == true then + -- add interface for DSL + uci:section('network','interface','wdsl',{ + device = 'dsl0.' .. tostring(vlanid), + proto='pppoe', + username=username, + password=password, + ipv6='auto', + }) + + uci:section('firewall','rule','wdsl_dhcpv6',{ + name = 'DSL DHCPv6', + src = 'wdsl', + family = 'ipv6', + dest_port = '546', + proto = 'udp', + target = 'ACCEPT', + }) +else + uci:delete('network', 'wdsl') + uci:delete('network', 'wdsl6') + uci:delete('firewall', 'wdsl_dhcpv6') +end + +uci:commit('network')