--- /dev/null
+package network
+
+config package
+ option title 'Network configuration'
+
+config section
+ option name 'interface'
+ option title 'Network interface'
+ option package 'network'
+ list depends 'proto=static, ipaddr, netmask'
+ list depends 'proto=static, ip6addr'
+ list depends 'proto=pppoe, username, password'
+ list depends 'proto=pptp, username, password, server'
+ list depends 'proto=dhcp'
+ list depends 'proto=none'
+ option named true
+ option required true
+
+config variable
+ option name 'ifname'
+ option title 'Physical interface'
+ option section 'network.interface'
+
+config variable
+ option name 'macaddr'
+ option title 'Interface MAC address'
+ option section 'network.interface'
+ option datatype 'macaddr'
+
+config variable
+ option name 'mtu'
+ option title 'MTU'
+ option section 'network.interface'
+ option datatype 'uint'
+
+config variable
+ option name 'ipaddr'
+ option title 'IPv4 host address'
+ option section 'network.interface'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'netmask'
+ option title 'IPv4 network mask'
+ option section 'network.interface'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'gateway'
+ option title 'IPv4 gateway'
+ option section 'network.interface'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'bcast'
+ option title 'IPv4 broadcast address'
+ option section 'network.interface'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'ip6addr'
+ option title 'IPv6 address (CIDR)'
+ option section 'network.interface'
+ option datatype 'ip6addr'
+
+config variable
+ option name 'ip6gw'
+ option title 'IPv6 gateway'
+ option section 'network.interface'
+ option datatype 'ip6addr'
+
+config variable
+ option name 'dns'
+ option title 'DNS server (IPv4 or IPv6)'
+ option section 'network.interface'
+ option datatype 'ipaddr'
+ option multival true
+
+config variable
+ option name 'keepalive'
+ option title 'keep-alive'
+ option descriptions 'Number of connection failures before reconnect'
+ option section 'network.interface'
+ option datatype 'uint'
+ list depends proto=pppoe
+ list depends proto=pptp
+
+config variable
+ option name 'demand'
+ option title 'Dial on-demand'
+ option description 'Number of seconds to wait before closing the connection due to inactivity'
+ option section 'network.interface'
+ option datatype 'uint'
+ list depends proto=pppoe
+ list depends proto=pptp
+
+config variable
+ option name 'username'
+ option title 'Username'
+ option section 'network.interface'
+ option datatype 'string'
+ list depends proto=pppoe
+ list depends proto=pptp
+
+config variable
+ option name 'password'
+ option title 'Password'
+ option section 'network.interface'
+ option datatype 'string'
+ list depends proto=pppoe
+ list depends proto=pptp
+
+config variable
+ option name 'server'
+ option title 'PPTP server'
+ option section 'network.interface'
+ option datatype 'ipaddr'
+ list depends proto=pptp
+
+config variable
+ option name 'proto'
+ option title 'Protocol'
+ option section 'network.interface'
+ option type 'enum'
+ option required true
+
+config enum
+ option variable 'network.interface.proto'
+ option value 'none'
+ option title 'Disabled'
+
+config enum
+ option variable 'network.interface.proto'
+ option value 'dhcp'
+ option title 'Retrieve IP address via DHCP'
+ option default true
+
+config enum
+ option variable 'network.interface.proto'
+ option value 'pptp'
+ option title 'Interface is a PPTP tunnel endpoint'
+
+config enum
+ option variable 'network.interface.proto'
+ option value 'static'
+ option title 'Interface has static network configuration'
+
+config enum
+ option variable 'network.interface.proto'
+ option value 'pppoe'
+ option title 'Retrieve IP address via PPPoE'
+
+config variable
+ option name 'type'
+ option title 'Option type'
+ option section 'network.interface'
+ option type 'enum'
+
+config enum
+ option variable 'network.interface.type'
+ option value 'bridge'
+ option title 'This is a bridge interface'
+
+
+
+config section
+ option name 'alias'
+ option title 'Alias interface definition'
+ option package 'network'
+ list depends 'proto=static, ipaddr, netmask'
+ list depends 'proto=static, ip6addr'
+ option named true
+
+config variable
+ option name 'interface'
+ option title 'Parent interface'
+ option section 'network.alias'
+ option valueof 'network.interface'
+ option required true
+
+config variable
+ option name 'ipaddr'
+ option title 'IPv4 host address'
+ option section 'network.alias'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'netmask'
+ option title 'IPv4 network mask'
+ option section 'network.alias'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'gateway'
+ option title 'IPv4 gateway'
+ option section 'network.alias'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'bcast'
+ option title 'IPv4 broadcast address'
+ option section 'network.alias'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'ip6addr'
+ option title 'IPv6 address (CIDR)'
+ option section 'network.alias'
+ option datatype 'ip6addr'
+
+config variable
+ option name 'ip6gw'
+ option title 'IPv6 gateway'
+ option section 'network.alias'
+ option datatype 'ip6addr'
+
+config variable
+ option name 'dns'
+ option title 'DNS server (IPv4 or IPv6)'
+ option section 'network.alias'
+ option datatype 'ipaddr'
+
+config variable
+ option name 'proto'
+ option title 'Protocol'
+ option section 'network.alias'
+ option type 'enum'
+ option required true
+
+config enum
+ option variable 'network.alias.proto'
+ option value 'static'
+ option title 'Interface has static network configuration'
+
+
+
+config section
+ option name 'route'
+ option title 'Static route definition'
+ option package 'network'
+
+config variable
+ option name 'interface'
+ option title 'Interface'
+ option section 'network.route'
+ option valueof 'network.interface'
+ option required true
+
+config variable
+ option name 'target'
+ option title 'Target IPv4 host or network'
+ option section 'network.route'
+ option datatype 'ip4addr'
+ option required true
+
+config variable
+ option name 'netmask'
+ option title 'Target IPv4 netmask'
+ option section 'network.route'
+ option datatype 'ip4addr'
+
+config variable
+ option name 'gateway'
+ option title 'IPv4 gateway'
+ option section 'network.route'
+ option datatype 'ip4addr'
+ option required true
+
+
+
+config section
+ option name 'switch'
+ option title 'Section switch'
+ option package 'network'
+ option named true
+ option dynamic true
+ option required true